Mac安装Mysql8.0.13版本修改数据库密码,使其能够通过navicat进行连接
Mysql改密码巨坑,网上好多用法试过,但是都是以前的命令,根本就不生效了,已经是第二次修改密码了,记录一下,不然下次真的又要踩坑。
1、启动mysql服务:
(1)在系统偏好设置打开mysql启动
(2)或者通过命令启动:打开终端->sudo /usr/local/mysql-8.0.13-macos10.14-x86_64/support-files/mysql.server start
2、终端继续输入命令:/usr/local/mysql-8.0.13-macos10.14-x86_64/bin/mysql -u root -p -> 初始化没有密码直接进入回车,如果是密码忘记了想修改密码请看3;如果是初次安装在没有密码的情况下想设置密码,请直接进入4
3、忘记密码,此时需要进入安全模式将密码设置为"";我试过在安全模式中修改密码,但是不行。
(1)停止mysql的服务:打开终端->sudo /usr/local/mysql-8.0.13-macos10.14-x86_64/support-files/mysql.server stop
(2)进入mysql的bin路径下:cd /usr/local/mysql-8.0.13-macos10.14-x86_64/bin
(3)登陆管理员权限:sudo su
(4)输入:./mysqld_safe --skip-grant-tables & (此时mysql会变成running的状态)
(5)输入:./mysql. (进入mysql模式)
(6)输入use mysql (转换成mysql的库)
(7)可按\h查看当前mysql模式,键盘的使用(如果发现当前输入的文本没有反应,应该是语法错了,使用\c清空当前文本,重新输入,如下就是少加了一个;使用\c清空重新输入。这个真的是巨坑,也没有报错信息,都不知道是不是执行成功了)
(8)修改root用户密码为空(格式一定要对,如下表示执行成功):update user set authentication_string='' where user='root';
(9)查看当前数据库情况(可以看到密码已经是“”):select host,user,authentication_string from user;
(10)这里不能直接使用update 修改密码
因为这样会给user表中root用户的authentication_string字段下设置了newpassword值;
当再使用ALTER USER 'root'@'localhost' IDENTIFITED BY 'newpassword'时会报错的;
因为authentication_string字段下只能是mysql加密后的41位字符串密码;其他的会报格式错误;
Alter也是不行的,如下为直接使用alter的情况:
(11)退出mysql模式:exit
(12)设置密码为空以后要记得重启mysql,不然进行第4步的时候会报错还在安全模式中
4、接2,进入mysql模式后输入:ALTER user 'root'@'localhost' IDENTIFIED BY '[email protected]';
5、查看修改是否成功(到这里mysql的密码就修改成功了,如果mysql以后又修改了语句的格式就不适用了,大家以后百度的时候记得把mysql的版本带上,今天查了一下午的问题就是吃亏在版本上,用以前的命令老是执行不成功,但是也没有报错。总结一下,希望能帮到有需要的朋友):
6、最后使用exit退出mysql模式
参考文章:https://blog.****.net/weixin_34174105/article/details/91962523 非常感谢这位朋友的转载