mariadb启动报错:[ERROR] Can't start server : Bind on unix socket: Permission denied
今天mariadb总是启动不了,对于我来说是不能忍受的。然后前往日志文件查看报错信息,提示如下:
出错信息一共就这三行,没有报其他的错误。那只能从红色方框的地方开始入手了。
首先是百度去搜索原因是什么?发现说是配置文件中的socket段有问题,大致问题如下:
1、你的socket中的mysql.sock路径所在的那个上一级目录一定要有mysql用户可写的权限,我这里可能说的不清楚,大家记住一点,mysql.sock一般放在/tmp路径下,/tmp这个路径的权限按照系统设定的来
2、系统设定的/tmp这个目录,权限是:
如果你修改了tmp的权限(比如用户和用户组等),请修改回来。
也有的人把mysql.sock设置到其他的目录下,只要这个文件的上一级目录中mysql用户对其有读写权限即可。
但即便如此,可能上面的错误还不能解决,这个时候,网上也有教程说是你的系统中包含有mysql进程,因此再使用ps命令查看一下上次启动的mysql是否关闭了。如果mysql是未正常关闭的,那麻烦就大了,你要手动删除mysql.sock文件。
不过对我来说上面的方法都没有解决:
后来我在mysql官网的解决教程中找到了原因:mysql问题官网如:https://dev.mysql.com
官方提供的解决方法如下:
1、首先是要ps命令确定mysqld进程是否还还有残余存在。如果存在,尝试kill掉
2、telnet 127.0.0.1 3306端口看看是否可以通.
3、查看开机自启动的服务中是否含有mysql。这里使用命令:systemctl list-unit-files | grep mysql可以看到老的mysql服务是否是开机自启动的设置,如果有,把他去掉。(因为出现这个问题大多是之前安装过mysql,现在再次安装就出现一开始的那个错误问题)
4、防火墙问题,建议全部关闭。
截图如下: