1.使用Homebrew进行安装mysql所遇到的问题
安装完成后,会有如下内容:
We've installed your MySQL database without a root password. To secure it run:
mysql_secure_installation
MySQL is configured to only allow connections from localhost by default
To connect run:
mysql -uroot
A "/etc/my.cnf" from another install may interfere with a Homebrew-built
server starting up correctly.
To restart mysql after an upgrade:
brew services restart mysql
Or, if you don't want/need a background service you can just run:
/usr/local/opt/mysql/bin/mysqld_safe --datadir=/usr/local/var/mysql
第一句话,我们安装了mysql数据库但是没有设置root密码,如果要设置,请运行指令:
mysql_secure_installation
但是,如果直接终端里面敲这个指令,可能会遇到如下的提示问题:
Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
造成这个的原因是因为没有启动mysql,需要运行指令
sudo mysql.server start
来启动mysql。但是当我们运行这个指令的时候,可能会出现如下错误:
ERROR! The server quit without updating PID file(...)
导致这个的原因可能很多,网上一搜也能列举出来很多方法,进程的原因可能是最大的(本人即是这个原因)。我选取一个有效且简单的方法。打开活动监视器,找到mysql进程,双击打开,直接退出进程(一定要保证mysql进程不存在)
虽然不知道为什么一安装好,mysql就在运行,并且还会导致Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)的错误。但是退出这个进程,然后再通过指令
sudo mysql.server start
启动mysql,进而就可以进行其他一系列操作了。如果第一步mysql_secure_installation卡住了,完成到这里之后。就可以运行第一条指令了(以后电脑每次重启,都需要这样杀死进程,再通过指令sudo mysql.server start 进行启动,才能连接到mysql,且不会出现’/tmp/mysql.sock’(2)的错误)。
2.使用mysql官网下载安装mysql所遇到的问题
本人的原因:最开始安装mysql8.0版本,安装完之后就可以直接运行。之后过了一段时间,突然就不能用了。后来查阅资料,看网上说的是:
In MySQL 8.0, caching_sha2_password is the default authentication plugin rather than mysql_native_password, which was the default in MySQL 5.7.
但是在5.7也有可能是auth_socket 的情况。auth_socket 和caching_sha2_password都有可能导致ERROR 1698 (28000): Access denied for user ‘root’@'localhost’的问题。至于caching_sha2_password有什么作用,好像是安全性方面的作用,本人本科生也没有深入了解,这篇文章只是分享下自己解决的问题方法,有兴趣的,我放个链接:
所以,我看网上有好多文章。解决方法大致就是,把root用户的plugin改成mysql_native_password。然后就可以通过密码登录了。具体实现起来就是安全模式启动mysql,可以不用输入密码进入mysql,然后先查看一下root的plugin:
select user,plugin from mysql.user;
如果你是homebrew安装的mysql,默认下就是这样:
如果你的也是mysql_native_password,那可能是别的原因,自行查找别的文献资料!!
完成这一步后,5.7版本和8.0版本,分别对应了两种改plugin的方法,这里我不作阐述,有需要的可以自行到StackOverflow上查找这个问题的解决办法!(本人一开始就是这个问题,后来才改用的homebrew安装mysql的)。