在vmware虚拟机上安装了ubuntu server12.04,安装了mysql,一直使用正常,后来长期未启动此虚拟机。
中间一段时间因host机上的eset防火墙的问题,用vmware的虚拟网络编辑器更改了虚拟机的网段到172.16.x.x。
今天测试下access到mysql的数据迁移,因此想起这个虚拟机,启动之,查看ip,也被分配到了172.16网段,但是,mysql服务再也启动不起来。
在/etc/init.d/下,用mysql start或start mysql或service mysql start等启动,都报:
start:Job failed to start。
查看/var/log/syslog或/var/log/kern.log,都有mysql启动失败的相关信息:
May 28 17:24:50 ubuntu kernel: [? 376.993173] type=1400 audit(1401269090.556:18): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=2526 comm="apparmor_parser"
May 28 17:24:51 ubuntu kernel: [? 378.403091] init: mysql main process (2530) terminated with status 1
May 28 17:24:51 ubuntu kernel: [? 378.403120] init: mysql respawning too fast, stopped.
当然,并没找到什么有用的信息。
找到一个网上因为修改字符集导致mysql出现同样故障的情况,去看看配置文件:
/etc/mysql/my.cnf
找到了[mysqld]一节:
却偶然在后面一行,看到了:
bind-address??????????????? =192.xxx.xxx.xxx,这个bind地址是原地址,而非系统的现地址。
尝试将此地址修改为现用的172.16.x.x地址,再次启动mysql,居然启动成功!
看来找到原因了,那么为何mysql不绑定在127.0.0.1呢?也许是以前配置mysql的远程访问时写进的配置,当然mysql没那么智能,在系统修改ip后自动更新配置文件里面的ip。
--转自