因为最近mysql不知道什么原因,莫名的挂掉,mysql为了方便,在公网是可以访问的
最直接的表面现象,文件系统变为只读文件,mysql进程退出,重启服务器,一般就能启动mysql服务。
查看了下系统日志,发现有mysqld挂起状态。
查看mysql的错误日志,发现大量的下列日志:
2016-06-25 12:06:55 1500 [Warning] IP address '45.34.191.138' could not be resolved: Temporary failure in name resolution
针对这种情况,网上给出了解决方法:
1、修改配置文件
可以通过两个参数来disable这个功能,在MYSQL的配置文件中[mysqld]中加入下面的参数:
[mysqld]
--skip-host-cache
--skip-name-resolve
重新授权,将所有访问数据库服务器的授权方式都改成IP形式的。
grant all on *.* to ‘root’@’172.16.12.68’identified by ‘123456’;
2、添加授权。
将所有访问数据库服务器的授权方式都改成IP形式。
不同的用户用不同的用户名和密码。
grant all on *.* to ‘user_68’@’172.16.12.68’identified by ‘pwd_68’;
grant all on *.* to ‘user_67’@’172.16.12.67’identified by ‘pwd_67’;
....
然后去 mysql数据库下面的 user表 和db表 下面删除掉那些含有含有主机名字的权限记录。
我的情况不适合网上所说方法,我的数据库只在本机所用,所以使用下面的方法:
1,在【mysqld】添加bind_address=127.0.0.1
2,防火墙屏蔽掉3306端口。
对于需要使用网络访问数据库服务器的,可以参考网上解决方法试着解决。