如何修改mysql8.0的root密码?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
mysql5.7.9
之后,就没有了password
函数,所以,使用传统的password()
函数修改root密码的话,就会提示sql错误。那么最新版的mysql8.0
该如何修改root
密码呢?在本文中,苏南大叔将要深入探讨这个问题。
本文测试环境:mac
,mysql@8
。
首次设置mysql密码
最简单安全可靠的方式就是使用mysql_secure_installation
命令,这里不但可以修改密码,还可以修改密码策略。具体的使用方式,见这里:
设置好之后,就可以使用mysql
命令行登陆了。
mysql -uroot -p
传统修改root
密码的sql语句
set password for root@localhost=password('root');
但是,这样的语句,已经不能执行了,直接报错。原因是:现行的mysql,没有password
字段了,也没有password()
语句了。
错误信息是:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'password('root')' at line 1
正确的修改root
密码的方式
为了兼容其余的mysql第三方客户端,目前来看,最正确的设置方式是这样的:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
不过,这种方式有如下需要说明的地方:
- 密码加密方式变更成了更传统的
mysql_native_password
。 - 密码的值
password
受mysql
密码策略控制,不一定修改成功的。
最简单的root
密码
出于测试目的的话,开发人员都希望root
密码是个弱密码。那么下面的sql语句,也许是最弱智密码的设置方法了。注意:设置密码为root
,在目前的是mysql8.0
中是绝对不能成功的。
select @@validate_password_length;
select @@validate_password_mixed_case_count;
select @@validate_password_number_count;
select @@validate_password_policy;
select @@validate_password_special_char_count;
set global validate_password_policy=0;
set global validate_password_length=4;
set global validate_password_mixed_case_count=0;
set global validate_password_number_count=0;
set global validate_password_special_char_count=0;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'r00t';
上述sql中,root
用户的弱密码是r00t
。密码策略也修改成了最低级。当然,如果您想知道密码测试相关的设置,下面这条sql语句是最简单的方式。
show variables like 'validate_password%';
总结
对于mysql8.0
,如何设置密码为常使用的弱密码root
?目前为止,苏南大叔还没有找到好的办法,一直在提示不符合密码策略。所以,暂时就先搁置这个议题吧。
大家如果知道,如何在mysql8.0
下,设置弱密码的方式方法。欢迎给苏南大叔留言。
更多mysql相关文章,请点击这里查看,苏南大叔的mysql
相关经验总结:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。