简单描述
之前安装过mysql。官网下载正常安装,正常使用。后来os推送升级,之后就无法再启动mysql服务器。无奈之下觉得重新安装一个mysql,再一次安装的时候出现了无法连接的问题。
忽略的过程
毕竟这篇文字并不介绍如何安装mysql。所以下面几个步骤就不详细说明。
1.卸载mysql(百度有很多卸载教程,一定要卸载干净后重新安装,避免出现更多问题。)
2.安装mysql(安装方式多种,官网下载安装包,或者brew直接安装。推荐brew直接安装,博主就是下载的安装包,才导致出现问题。)
出现问题
安装完mysql服务后,启动正常。但是尝试连接服务器是却报错了。
error: 'Access denied for user 'root'@'localhost' (using password: YSE)'
多次尝试,确定密码没有问题后(安装的默认密码)。百度了很久都没有找到合适的答案。写到这里突然想到一个问题。“是否是因为,历史版本的库没有删除。导致密码错误?”
解决方法
为了解决这个密码错误的问题,我的方法很粗暴,直接修改数据库密码。具体操作如下
sudo /usr/local/mysql/bin/mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
以上命令是进入mysql的安全模式
–skip-grant-tables 这一句的意思是跳过授权(不走mysql库的密码表)
–skip-networking 这一句是跳过tcp协议访问。
不是专业DBA,命令是从网上找的。
进入安全模式后,另起一个终端。直接访问mysql,就能连接上服务器了。
通过mysql语法,选择mysql这个库。然后执行修改root这个用户密码的sql语句。
update user set authentication_string=PASSWORD('123456') where user='root';
这样,root账号的密码就修改好了。注意:避免修改了别的账号,最好是select确认一下自己的账号。
重新刷新一下权限
flush privileges;
关闭安全模式窗口,重新使用新密码登录,就没问题了。
新的问题
终于解决了mysql的连接问题。开开心心关掉终端,打开navicat准备把新的库关联上去,又报错了。
这回轮到navicat连接不上了。
百度上说的解决方法,是把端口3306改成3307,但是我试了没有成功。无奈之后,我重启了电脑。再一次打开的时候,居然连接上了。
所以我估计,是因为卸载上一个mysql的时候,没有卸载彻底,导致了这么多问题。建议还是下载一个专门的卸载管理工具,每一次卸载的时候,都能彻底一些。不要再把自己搞崩溃了。