2015-11-02 6 views
2

1) Служба купированНевозможно получить доступ к MySql корневого пользователя, даже после установки пароля через SafeMode в Linux терминал

sudo /etc/init.d/mysqld stop 

2) начал в безопасном режиме

sudo mysqld_safe --skip-grant-tables & 

3) пользователь, созданный

mysql -u root 

4) установка passwd

UPDATE user SET Password=PASSWORD('my_password') where USER='root'; 

выхода из консоли MySQL, и перезапустить службу и пытается получить доступ к MySQL консоли с

mysql -u root -p my_password  

[[email protected] ~]$ mysql -u root -p 
Enter password: ******* 

ERROR 1045 (28000): Доступ запрещен для пользователя 'корень' @ 'локальный' (используя пароль: ДА)

+0

для ударов, попробуйте его без пробелов между пунктиром p и паролем – Drew

+0

, возможно, вы должны проверить поле имени хоста записи (ов) в таблице пользователя –

+0

, поскольку @DanielAlder говорит, вернитесь с шагом2 и выпустите ' выберите пользователя, хост, пароль из mysql.user, где user = 'root'; ', и посмотрите, есть ли у вас несколько строк вывода, где хешированный пароль отличается от проверки на глаз – Drew

ответ

2

Как показано на шаге 2, перезапустите демон mysql в безопасном режиме.

Issue команда

select user,host,password from mysql.user where user='root'; 

вырезание и вставка вывода в текстовый редактор для сравнения (из беспорядочных значений столбцов пароля) до и после того, как в следующем.

Для каждой строки обратите внимание на колонку host. В следующем примере я предполагаю, что у меня две строки. В одном ряду есть % в качестве принимающей стороны, у следующего есть

Для каждой строки, у которой была вариация host, вы будете выдать одну команду. Так что в моем примере выше, я бы выпуск 2 команды в общей сложности, такие как:

SET PASSWORD FOR 'root'@'%' = PASSWORD('MyNewPassword'); 
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword'); 

прогонов

select user,host,password from mysql.user where user='root'; 

вырезать и вставить, что в текстовом редакторе. Обратите внимание на изменение хэша паролей.

Выключите демона из безопасного режима и перезагрузитесь нормально.

Попробуйте войти как корень с MyNewPassword

Вот несколько ссылок. Один для SET PASSWORD Syntax, и часто следующий шаг для GRANT Syntax.

Для ограниченного объема этого вопроса, то есть для входа в систему, гранты не нужны. Но без надлежащих грантов для баз данных можно было бы изолировать песочницу, не в состоянии сделать многое, кроме простых команд, например, select now();

Я не предлагаю, чтобы ваш пользователь root не имел привилегий после изменения пароля. Гранты необходимы для нормальных пользователей.

Смежные вопросы