зависит обновление пароля mysql от учетной записи пользователя в linux?

0

Привет 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???

Любая помощь будет оценена

  • 1
    Что произойдет, если вы используете пустой пароль, а не пароль? (поэтому используйте mysql -p вместо mysql ? Я думаю, что вы установили свой apssword в '', что, вероятно, является чем-то непустым, когда хешируется с password
  • 2
    Когда вы просто запускаете mysql, есть ли файл .my.cnf для пользователя без полномочий root? Попробуйте mysql -u root как root и root, оба должны работать. Вы FLUSH PRIVILEGES после обновления пароля?
Показать ещё 3 комментария
Теги:

2 ответа

1
Лучший ответ

После обновления GRANTS или таблиц mysql, многие люди забывают выполнить FLUSH PRIVILEGES.

Только после FLUSH PRIVILEGES изменения вступят в силу.

1

Учетные записи MySQL полностью независимы от системных учетных записей. Они могут совпадать с одинаковыми именами пользователей (например, по умолчанию учетная запись root является учетной записью суперпользователя системы и mysql).

После того, как вы установили пароль в учетной записи в mysql, вы должны заставить команду mysql (mysql) запросить пароль (-p) и, возможно, указать свое имя пользователя MySQL (-u), если ваше имя учетной записи MySQL не совпадает с вашим именем пользователя Linux:

Другими словами:

mysql -u root -p

сообщит MySQl, чтобы попытаться зарегистрировать вас в учетной записи mysql root и запросить пароль учетной записи.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню