CentOS中安装了MySQL 5.7root密码问题
在CentOS中安装好了MySQL 5.7之后,才想到root密码不知道。不要紧,直接重置密码。
1.修改配置文件my.cfg
[root@localhost ~]# vi /etc/my.cnf
找到mysqld在之后添加
skip-grant-tables
保存退出
2. 重启mysql服务
service mysqld restart
3.直接登陆mysql而不需要密码
mysql -u root (直接点击回车)
4.在mysql中输入
update mysql.user set password=password('root') where user='root';
(此时提示ERROR 1054 (42S22): Unknown column 'password' in 'field list')
5.(这是怎么回事?)原来是mysql数据库下已经没有password这个字段了,password字段改成了authentication_string
update mysql.user set authentication_string=password('123456') where user='root';
6.执行
flush privileges
7.退出mysql
,到my.cgf中把开始添加的skip-grant-tables去掉
8.重启mysql服务
大功告成!
但是在有的配置环境下事实并非如此!
9.当你登陆mysql之后你会发现,当你执行命令时会出现
ERROR
1820 (HY000): You must reset your password using ALTER USER statement;
当你执行了SET PASSWORD
= PASSWORD('123456');
出现:ERROR
1819 (HY000): Your password does not satisfy the current policy requirements
10.你需要执行两个参数来把mysql默认的密码强度的取消了才行,但不建议这样做,建议修改密码强度
set global validate_password_policy=0; set global validate_password_mixed_case_count=2;11这是你在执行 SET PASSWORD = PASSWORD('123456');