目录
一、免密码登录MySQL
首先我们应该免密码登录root用户的MySQL才能进进行密码的修改。
我们只需要在/etc/my.cnf文件中的[mysqld]下面加上一行
skip-grant-tables
如下:
然后使用如下命令重启MySQL服务,不重启是不生效的
systemctl restart mysqld.service
使用命令查看MySQL的状态:
systemctl status mysqld.service
下面这个样子就是没有问题:
然后使用如下命令登录MySQL:
mysql -uroot -p
弹出password的时候,不需要输入,再回车一下即可
如下是登陆成功的样子:
二、修改密码、ERROR1193、ERROR1290
密码修改代码:
第一次修改可能会违反安全协议,弹出密码不安全的提示,很烦人,当然如果你是那种喜欢设置很长密码的人,那和你没关系。
ALTER USER 'root'@'localhost' IDENTIFIED BY '123123';
或者下面这行代码也能修改密码,更推荐下面这一个:
update user set authentication_string=PASSWORD("123456") where user='root';
(第二种方式可以避免’
Access denied for user ‘root’@’123.7.88.186′(Using password: YES)
‘这个错误)
ERROR1290解决方法
如果弹出ERROR1290,如下:
这个时候刷新一下权限即可:
flush privileges;
再次执行修改密码的代码,结果如下:
ERROR1819解决方法
ERROR1819
提示密码不符合安全策略,那么我们就修改安全策略。
修改安全策略
如下命令将mysql的安全检查设置为低 :
set global validate_password_policy=0;
如下命令设置密码的最短长度,1不是一个字符就行:
set global validate_password_length=1;
我们先设置安全检查(顺序无所谓):
提示了如下错误:
ERROR1193解决方法
如果遇到如上提示,说明你没有密码验证插件,解决方法如下:
首先还是打开/etc/my.cnf这个文件
继续在[mysqld]下面加上两行加载插件的代码如下:
plugin-load-add=validate_password.so
validate-password=FORCE_PLUS_PERMANENT
plugin-load-add=validate_password.so:
插件的加载方法,每次服务器启动时都必须给出该选项;
validate-password=FORCE_PLUS_PERMANENT:
validate-password在服务器启动时使用该选项来控制插件的激活。
修改了配置之后一定要重启MySQL服务,如下:
登录MySQL:
如下命令可以查看MySQL安全策略,如果没有配置密码验证插件是不显示的。
SHOW VARIABLES LIKE 'validate_password%';
如下:
修改难度等级:
修改密码最短长度:
再看一次安全策略有没有被修改,下面是修改成功的展示:
刷新:
修改密码:
exit退出:
登陆一下试试:
完成!
授权其他机器登录MySQL(可选)
下面的设置是根据你自己的想法来设置,你不想授权就不授权。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
flush privileges;
如下:
至此,结束。
结语
以上便是MySQL的密码修改方法以及一些常见的问题总结,如果有错误请指出!谢谢大家。