当你搭建了MySQL服务,或者使用别人搭建好的MySQL服务,忘记root密码怎么办?今天跟大家简单分享下处理方法。
不要忘记密码,要记录好
由于MySQL不同版本处理的方式不一样,这里为大家分享3个大版本的重置方法。
1.重启mysql服务,并在启动脚本里添加参数–skip-grant-tables 。
$ mysql -h127.0.0.1 -P3306 -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 1
Server version: 5.1.26-rc Source distribution
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql> use mysql
//将密码置空
mysql> update user set password=password('你要设置的密码') where user='root';
mysql> flush privileges;
2.用root用户进行空密码登录设置新密码。
$ ./mysqld_safe --defaults-file=./my.cnf &
3.去除免密码登录,并重启mysql服务注释掉步骤1的语句 。
$ ./mysqld_safe --defaults-file=./my.cnf &
4.这时候使用新密码登录。
1.修改配置文件my.cnf免密码登录。
在【mysqld】模块添加:skip-grant-tables 保存退出;
2.重启mysql服务。
3.用root用户进行登录设置新密码,注意从5.7版本开始,不再是password这个字段赋值。
mysql> use mysql
//将密码置空
mysql> update user set authentication_string=password('你要设置的密码') where user='root';
mysql> flush privileges;
新的语法
4.去除免密码登录,并重启mysql服务注释掉步骤1的语句 。
# skip-grant-tables
5.这时候使用新密码登录。
1.修改配置文件my.cnf免密码登录。
在【mysqld】模块添加:skip-grant-tables 保存退出;
2.重启mysql服务。
3.用root用户进行登录置空密码,这一步很重要。
mysql> use mysql
//将密码置空
mysql> update user set authentication_string = '' where user = 'root';
4.去除免密码登录,并重启mysql服务注释掉步骤1的语句。
# skip-grant-tables
5.用root用户进行空密码登录修改密码。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root密码';
注意:root密码需要复杂点
上面讲了root如何重置,下面顺便跟大家讲下如何创建用户密码。
$ mysql -h127.0.0.1 -P3306 -uroot -p
mysql> grant all privileges on testuser.* to testuser@'%' identified by 'testuser';
ERROR 1290 (HY000): Unknown error 1290
mysql> flush privileges;
Query OK, 0 rows affected (0.07 sec)
mysql> grant all privileges on testuser.* to testuser@'%' identified by 'testuser';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
通过三个不同版本的MySQL版本,你知道怎么重置数据库root密码了吗?
是不是很简单,你也可以做到的。