啥也没干,服务器突然报错连不上本地数据库了。之后用管理软件查看,也连不上。
本地是否有多个数据库?
首先怀疑的是本地有多个数据库,互相影响了配置。于是把通过安装包安装的MySql服务删了,只通过brew来管理brew安装的数据库服务。
但是在命令行中尝试启动mysql的时候也报错了,有提示,但现在复制不到了。大概是说连接.sock文件的时候出错。
怀疑是配置问题
搜了一下,说可能是skip-networking的问题,这个如果是ON的时候,会拒绝一切来自TCP的访问请求(数据库管理软件默认也是从TCP访问,但可以设置通过套接字访问,这里我没有尝试),所以管理软件的访问也被拒绝了。
修改配置文件
MySql的配置文件默认叫my.cnf(macos上),但我搜出来了好多,索性全改了,最终通过命令行打印出来,显示skip-networking也已经是OFF了,但仍然连不上。
关于修改skip-networking的问题,网上也有人说是因为我的root用户没有密码,所以MySql会强行更改我的设置,中间还和skip-grant-tables这个配置产生了一些关系,但现在也无从验证了。
重装
重装之后,默认的配置中skip-networking也是ON,但是我将众多my.cnf中的一个(他是只读的)删掉之后,重启服务,可以连上了。查看端口,也在监听3306了(之前MySql是在监听0)。