我已经使用EditLine包装器安装了Mysql Ver 14.14 Distrib 5.7.9 for Linux(x86_64)在 CentOS Linux版本7.1.1503
我使用此命令更改了root密码:
alter user 'root'@'localhost' identified by 'XXXXXXX';
flush privileges;
重新登录后
[root@server ~]# mysql -u root -p
Enter password:
ERROR 1524(HY000):插件 '* A6074285732753D325C55AD74E7517CF442C1A81'未加载
答案 0 :(得分:17)
自早期版本的mySQL(我正在使用5.7.10)以来,有两件事发生了变化:
systemd
现在用来管理mySQL而不是mysqld_safe
(这就是我收到-bash: mysqld_safe: command not found
错误的原因 - 它没有安装)
user
表结构已更改。
因此,要重置root密码,您仍然可以使用--skip-grant-tables
选项启动mySQL并更新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开始,使用RPM进行MySQL安装 分发,服务器启动和关闭由systemd on管理 几个Linux平台。在这些平台上,mysqld_safe不再存在 安装,因为它是不必要的。有关更多信息,请参阅部分 2.5.10,“使用systemd管理MySQL服务器”。
这会将您带到http://dev.mysql.com/doc/refman/5.7/en/server-management-using-systemd.html,它会在页面底部提到systemctl set-environment MYSQLD_OPTS=
。
密码重置命令位于http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
的底部答案 1 :(得分:1)
更改任何用户时,尤其是root用户,应该在mysql用户表上使用update。
您应该按照以下步骤重置它:
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
更新
答案 2 :(得分:0)
使用以下步骤重置密码。
e.consume()
重置MySql服务器root密码。
$ sudo systemctl start mysqld
输出类似 - :
$sudo grep 'temporary password' /var/log/mysqld.log
在重置mysql_secure_installation过程中使用上述密码。
10.744785Z 1 [Note] A temporary password is generated for root@localhost: o!5y,oJGALQa
您已成功重置MySql Server的root密码。 使用以下命令检查mysql服务器连接与否。
$ sudo mysql_secure_installation
Securing the MySQL server deployment.
Enter password for user root: