Не удается войти в mysql 5.7.9 после смены пароля

Я установил Mysql Вер 14.14. Разделите 5.7.9 для Linux (x86_64) с помощью обложек EditLine. Версия CentOS Linux 7.1.1503

Я изменил пароль root с помощью этой команды:

alter user 'root'@'localhost' identified by 'XXXXXXX';  
flush privileges;

После повторного входа в систему

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

ОШИБКА 1524 (HY000): плагин '* A6074285732753D325C55AD74E7517CF442C1A81' не загружен

Ответ 1

Две вещи изменились с более ранних версий mySQL (я использую 5.7.10):

  • systemd теперь используется для поиска mySQL вместо mysqld_safe (вот почему я получаю ошибку -bash: mysqld_safe: command not found - он не установлен)

  • Структура таблицы user изменилась.

Итак, чтобы reset пароль root, вы все равно запускаете mySQL с параметрами --skip-grant-tables и обновляете таблицу user, но как вы это делаете.

1. Stop mysql:
systemctl stop mysqld

2. Set the mySQL environment option 
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"

3. Start mysql usig the options you just set
systemctl start mysqld

4. Login as root
mysql -u root

5. Update the root user password with these mysql commands
mysql> UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPassword')
    -> WHERE User = 'root' AND Host = 'localhost';
mysql> FLUSH PRIVILEGES;
mysql> quit

6. Stop mysql
systemctl stop mysqld

7. Unset the mySQL envitroment option so it starts normally next time
systemctl unset-environment MYSQLD_OPTS

8. Start mysql normally:
systemctl start mysqld

Try to login using your new password:
7. mysql -u root -p

Ссылка

Как говорится в http://dev.mysql.com/doc/refman/5.7/en/mysqld-safe.html,

Примечание

Начиная с MySQL 5.7.6, для установки MySQL с использованием RPM распределение, запуск и завершение работы сервера управляется systemd on несколько платформ Linux. На этих платформах mysqld_safe больше нет потому что он не нужен. Для получения дополнительной информации см. Раздел 2.5.10 "Управление сервером MySQL с помощью systemd".

Что переносит вас в http://dev.mysql.com/doc/refman/5.7/en/server-management-using-systemd.html, где упоминается systemctl set-environment MYSQLD_OPTS= в нижней части страницы.

Команды пароля reset находятся внизу http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

Ответ 2

Вы должны использовать обновление в таблице пользователей mysql при смене любого пользователя, особенно root.

Вы должны выполнить следующие шаги: reset it:

How to reset the root password for mysql:
Stop mysql:
1. service mysql stop

Run mysql with skip grants to be able to login without any password
2. mysqld_safe --skip-grant-tables &

Login as root
3. mysql -u root

4. mysql commands:
mysql> use mysql;
mysql> update user set password=PASSWORD("YourPWHere") where User='root';
mysql> flush privileges;
mysql> quit

Stop mysql
5. service mysql stop

Start mysql normally:
6. service mysql start

Try to login using your new password:
7. mysql -u root -p

Update:

По-видимому, этот метод не будет работать для 5.7, см. здесь и Здесь вместо.

Ответ 3

Используйте приведенные ниже шаги для reset пароля.

$ sudo systemctl start mysqld

Reset пароль пользователя сервера MySql.

$sudo grep 'temporary password' /var/log/mysqld.log

Вывод чего-то типа -:

     10.744785Z 1 [Note] A temporary password is generated for [email protected]: o!5y,oJGALQa

Используйте указанный выше пароль во время процесса reset mysql_secure_installation.

   $ sudo mysql_secure_installation
       Securing the MySQL server deployment.

       Enter password for user root: 

У вас успешно reset пароль root для сервера MySql. Используйте команду ниже, чтобы проверить подключение сервера mysql.

$ mysql -u root -p

См. мою статью: Установить последнюю версию MySQL 5.7 на RHEL/Centos 7