不是很喜欢一些事情一直堆积在心里的感觉,就想把一个项目的私有化部署赶快搞定,可很多时候总会遇到妖魔鬼怪。

问题

linux连不上本机的数据库MySQL,一直报2002错误,使用mysql命令直连没有问题,其他服务器连接也没有问题,就本机连接本机数据库有问题,防火墙也看了没有问题

原因

因为linux的selinux安全机制原因,大概是它不建议数据库和应用放在同一台机器上,就禁止连接本机数据库。
Linux内核2.6之后会有selinux,使用getenforce命令可直接查看其状态:

Enforcing ---- 表示开启状态
Disabled  ---- 表示关闭状态

解决方案

可以使用setenforce 0,临时关掉的做法。我也不是什么魔鬼,所以临时关掉不是我的做事风格,我选择永久把selinux关掉。

1、修改/etc/selinux/config文件,将SELINUX值改为disabled
2、reboot重启服务器(本来不想重启机器的,但是sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config保存不顶用)