忘记MySQL root密码怎么办?

在配置文件的mysqld一节,增加skip-grant-tables选项:

[mysqld]
skip-grant-tables

 重启mysql服务。

service mysql restart

 在服务器本机进入mysql(不需要输入密码):

mysql

 此时已经是root权限,可以做任何事情。有一点需要注意,如果要操作系统表,如增加用户等,可能会报错:

The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

 这个时候,在MySQL命令提示符下执行:

set global read_only=0;
flush privileges;

 接下来就可以创建用户,修改密码了。不过别忘了,在所有操作执行完毕后,运行:

set global read_only=1;
flush privileges;

 接下来退出MySQL命令行,删除或者注释掉刚开始添加到mysql配置文件(my.cnf)中的

skip-grant-tables

最后,保存配置文件,重启mysql服务即可。

《忘记MySQL root密码怎么办?》有1个想法

  1. 添加普通用户并赋予某个数据库全部权限(第二行是为了增加远程访问权限):
    GRANT ALL ON username.* TO dbname@localhost IDENTIFIED BY ‘password’;
    GRANT ALL ON username.* TO dbname@’%’ IDENTIFIED BY ‘password’;

    添加系统管理员(第二行是为了增加远程访问权限):
    GRANT ALL PRIVILEGES ON *.* TO ‘username’@’localhost’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;
    GRANT ALL PRIVILEGES ON *.* TO ‘username’@’%’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;

评论已关闭。