1

Тема: Ошибка при создании таблиц

Есть структура таблицы:

CREATE TABLE `test` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

выполняю запрос. Выдает ошибку...ругается на "DEFAULT CHARSET=utf8". Может в настройках что-то поменять надо? Но в каких не знаю hmm

2

Re: Ошибка при создании таблиц

Me
У вас стоит старая версия MySQL, которая не поддерживает кодировки уровня таблиц (вероятно MySQL 3.2.3). Если есть возможность, то следует пересоздать дамп выбрав на странице экспорта в phpMyAdmin режим совместимости MYSQL323.

Если дамп пересоздать нельзя, то надо вручную убрать все DEFAULT CHARSET=utf8 и возможно ENGINE=InnoDB. В этом случае таблицы будут созданы в зависимости от глобальной кодировки MySQL.

3

Re: Ошибка при создании таблиц

Если убрать DEFAULT CHARSET=utf8, но тогда записи отображаются некорректно, хотя phpmyadmin все отлично видит. Это из-за глобальной кодировки MySQL? Как ее посмотреть и можно ли ее как-нибудь изменить? Или обновить как-то MySQL до последней версии? На компе установлен денвер..не пойму как там могла оказаться старая версия

4

Re: Ошибка при создании таблиц

И почему-то периодически при выполнении запросов вылазит ошибка: "missing parameter: db"..это может быть также связано с устаревшей версией?

5

Re: Ошибка при создании таблиц

Me
1) На главной phpMyAdmin отображается версия MySQL сервера.
2) Покажите вывод запроса:
SHOW GLOBAL VARIABLES LIKE 'char%';

Me сказал:

И почему-то периодически при выполнении запросов вылазит ошибка: "missing parameter: db"

Где вылазит? При каких запросах?

6

Re: Ошибка при создании таблиц

Hanut сказал:

Me написал:

И почему-то периодически при выполнении запросов вылазит ошибка: "missing parameter: db"

Где вылазит? При каких запросах?

Уже понятно, это мой косяк..если при добавлении записи в инсерте не указывать поля таблицы, то он выдает эту ошибку..напимер Insert into 'test' VaLUEs ('1','2');

А по поводу версии, проблема была в следующем: на сервере стоит уже какой-то старый mysql, который использует некоторая программа. Он лежит в папке C:\mysql\ При установке денвера, phpmyadmin обращается в папку к той базе. Как можно изменить путь к базе? Я смотрела в файле my.cnf, но там нет настройки basedir или datadir..пыталась добавить, но на странице "Показать системные переменные MySQL" значения не меняются.. sad

7

Re: Ошибка при создании таблиц

Me
Если вы хотите установить 2 MySQL на одном компьютере, то необходимо настроить их на разные порты. Изначально порт MySQL - 3306. Порт меняется в конфигурационном файле MySQL (my.cnf/my.ini).

8

Re: Ошибка при создании таблиц

Me написал:

    И почему-то периодически при выполнении запросов вылазит ошибка: "missing parameter: db"

Где вылазит? При каких запросах?


Сегодня опять вылезла эта ошибка...запрос был: DELETE FROM `table1` USING `table1`, table2 WHERE (SELECT count(*) FROM table2 WHERE id=table1.id2) = 0;
Сначала выкинуло на форму с вопросом "Вы действительно жеелаете...бла-бла-бла..", нажимаю "Да" и перебрасывает на чистый лист с этим сообщением... Понять не могу, в чем дело...hmm

9

Re: Ошибка при создании таблиц

Me
Возможно вы выполняете запрос не выбрав сперва БД? Повторное выполнение запроса решает проблему?

В документации по этой ошибке написано следующее:

2.8 Я получаю ошибку "Missing parameters", что можно сделать?

  * В config.inc.php, попробуйте оставить пустой директиву $cfg['PmaAbsoluteUri'].
  * Возможно была произведена проблемная установка PHP (при установке вылезали ошибки), или необходимо обновить Zend
    Optimizer. Смотрите http://bugs.php.net/bug.php?id=31134
  * Если в конфигурационном файле PHP используется директива varfilter.max_request_variables установленная изначально в 200 или другое низкое значение, данная ошибка может появиться при большом количестве полей в таблице. Установите данное значение в соответствии с вашими требованиями.
  * В php.ini директиве arg_separator.input, значение ";" может вызывать данную ошибку.
    Замените его на "&;".
  * Если вы используете Hardened-PHP, необходимо увеличить лимит запросов.
  * Директория прописанная в php.ini в директиве session.save_path не существует, либо имеет права только на чтение.