LINUX.ORG.RU
ФорумAdmin

Mysql USERADD проблемма ...


0

0

Господа. делаю так: use mysql; insert into user values('%','ats_log','freefreefree','N','Y');

мне выдается ошибка: ERROR 1136: Column count doesn`t match value count at row 1

и все... тишина ... пользователя добавить не получается ... У меня mysql 4.0.14 ... чего делать? как правильно?

anonymous

Привет,

Вообщето то что вы делаете - неправильно. правильнее задавать привилегии через команду GRANT. в вашем случае она будет выглядеть следующим образом:

GRANT INSERT ON *.* TO ats_log@'%' IDENTIFIED BY 'freefreefree';
FLUSH PRIVILEGES;

А ваша комманда не работает, потома что вы не указали ТОЧНЫЙ список полей, которые хотите заполнить. так что если-уж хотите использовать INSERTб пишите так:

INSERT INTO user(Host, User, Password, Select_priv, Insert_priv) VALUES('%','ats_log','freefreefree','N','Y');

удачи

kern
()
Ответ на: комментарий от kern

Большое спасибо ..... Верхний вариант с GRANT работает, нижний ругается на синтаксис .... чего не нравится я не понял .... да ну и ладно ... ;)

Вопрос следующий ... В mysql в user поле password легло что-то интересное, точнее мой пароль но уже в зашифрованном виде (не такой какой я задавал), так и должно быть? или где-то тут ошибка ?

И еще вопрос, используя GRANT, где вы задали 'N','Y' в user всмысле что в этой строчке на это указывает ? а то раньше этим не пользовался, а это интересно ...

anonymous
()
Ответ на: комментарий от anonymous

Привет,

команда GRANT передаёт пароль, как результат функции PASSWORD(), так что ваш пароль садится в базу зашифрованный по MD5. это насчёт первого вопроса. а насчёт 'N', 'Y' - вы использовали такую последовательность в вашем посте, задавая права доступа к базе, так? по дефолту, все права и так установлены на 'N', то есть единственное право, которое вам нужно установить - это INSERT. что и делается в команде GRANT - GRANT INSERT ...... можно задавать список - GRANT SELECT,INSERT ON *.* TO ..... либо давать 'кольцо всевластия' - GRANT ALL PRIVILEGES... на самом деле настояшее 'кольцо всевластия' будет, если задать в конце запроса WITH GRANT OPTION. тогда этот юзер сам сможет задавать другим права.

вышла маленькая лекция по MySQL :) а вообще, читайте документацию с сайта MySQL, там всё есть :)

P.S. да, есть ошибка в моем insert-е,хотя я помню, что именно так я раньше и делал - так как слово user в MySQL зарезервировано, надо писать INSERT INTO mysql.user(Host, User, Password, Select_priv, Insert_priv) VALUES('%','ats_log','freefreefree','N','Y');

надеюсь я вам помог.

kern
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.