Привет Mysql и Linux гуру!
У меня возникла странная проблема с установкой сервера Mysql на моей локальной машине. Вот история -
Я обычно работаю как пользователь non root
и использую su
для получения привилегий root для установки.
Я установил MySQL 5.1 server
на мой Fedora Linux machine 13
Я сделал необходимым, чтобы пользователь MySQL root
имел пароль при подключении с помощью клиента mysql от localhost
Это то, что мне нужно. Мне нужно протестировать оболочку script, которая вызывает mysql
клиент без имени пользователя и пароля. Мне нужно удалите пароль для пользователя mysqls
root. Также (важно), script должен запускаться от пользователя root
моего компьютера.
mysql -D dbname < script.sql
Это то, что я сделал. Из моей учетной записи linux без root я запустил клиент mysql, зарегистрированный как root @localhost, и выполнил следующую команду для удаления пароля root @localhost
update user set password = PASSWORD('') where user = 'root' and host = 'localhost';
Проблема!. Теперь из моей учетной записи unix с без root, когда я запускаю только mysql
, она успешно записывает меня. (пока что так хорошо). Но, когда я делаю su
, войдите в систему как linux root (суперпользователь) и запустите mysql
- я получаю
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Сообщение Script. Я вошел в систему с альтернативной учетной записью из учетной записи суперпользователя и повторно запустил запрос для обновления пользователя. Он по-прежнему не работает. Почему я могу запустить клиент mysql
без имени пользователя и пароля в качестве пользователя без полномочий root, но не может делать то же самое, что и суперпользователь linux???
Любая помощь будет оценена
После обновления GRANTS или таблиц mysql, многие люди забывают выполнить FLUSH PRIVILEGES
.
Только после FLUSH PRIVILEGES
изменения вступят в силу.
Учетные записи MySQL полностью независимы от системных учетных записей. Они могут совпадать с одинаковыми именами пользователей (например, по умолчанию учетная запись root
является учетной записью суперпользователя системы и mysql).
После того, как вы установили пароль в учетной записи в mysql, вы должны заставить команду mysql (mysql
) запросить пароль (-p
) и, возможно, указать свое имя пользователя MySQL (-u
), если ваше имя учетной записи MySQL не совпадает с вашим именем пользователя Linux:
Другими словами:
mysql -u root -p
сообщит MySQl, чтобы попытаться зарегистрировать вас в учетной записи mysql root
и запросить пароль учетной записи.
mysql -p
вместоmysql
? Я думаю, что вы установили свой apssword в '', что, вероятно, является чем-то непустым, когда хешируется сpassword
mysql -u root
как root и root, оба должны работать. ВыFLUSH PRIVILEGES
после обновления пароля?