解决MySQL误删root账户的实用方法(mysql误删root)

【解决MySQL误删root账户的实用方法】

MySQL root账户是MySQL用户的超级权限账户,它可以实现对任何MySQL对象(如表、存储过程、用户等)的完全控制,使用时千万不能误删。如果在未采取措施之前误删,则可能会造成MySQL服务无法无法启动,数据库也会出现故障,极大地影响业务使用,因此有必要提供实用的解决方式。

解决误删MySQL root账户的方法一般有如下几种:

(1)如果你还拥有一个root账户,可以利用拥有超级权限的root账户重置已删除的root账户的密码:

mysql> grant all privileges on *.* to root@'%' identified by "newpassword"; 

(2)通过解决MySQL .err错误文件:

 打开MySQL错误日志,检查是否有下面的语句:
2016-08-19T09:27:32.832030Z 0 [Warning] root@localhost requires resetting password;
直接以 socket 的方式启动 MySQL 服务:
mysql --no-defaults -uroot --skip-grant-tables
进入 mysql,运行以下命令:
mysql> use mysql;
mysql> update user set password=password('newpassword') where user='root';
mysql> flush privileges;
重新启动 MySQL 服务:
/usr/local/mysql/bin/mysqld -uroot -pnewpassword

(3)MySQL安装目录下可以调用mysqld_safe程序解决误删:

/usr/local/mysql/bin/mysqld_safe –skip-grant-tables &
进入 mysql,运行以下命令:
mysql> use mysql;
mysql> update user set password=password('newpassword') where user='root';
mysql> flush privileges;
关闭 MySQL 服务
/usr/local/mysql/bin/mysqladmin -u root -p shutdown
以socket的方式启动 MySQL 服务:
/usr/local/mysql/bin/mysqld -uroot -pnewpassword

以上三种方法都可以解决MySQL误删root 账户的问题,但在使用之前,一定要确定是正确的操作,并且有能力恢复MySQL环境。此外,为了避免由于误操作或系统问题导致MySQL root账户丢失,最好定期备份MySQL server的数据。


数据运维技术 » 解决MySQL误删root账户的实用方法(mysql误删root)