导致mysql启动失败的问题有很多种,这里我是就我遇到的问题,如果解决的做个分享。
故障环境:
在做mysql主从实验时,为了方便我在同一个机子上装了2个mysql
主的相关信息:
dasedir=/usr/local/mysql_master #主mysql的安装目录
datadir=/data/mysql_master #主mysql的数据库目录
conf=/etc/my_master.cnf #主mysql的配置文件
port = 3306 #主mysql的配置文件中指定的侦听端口和socket文件
socket = /tmp/mysql_master.sock
从的相关信息:
dasedir=/usr/local/mysql_slave #从mysql的安装目录
datadir=/data/mysql_slave #从mysql的数据库目录
conf=/etc/my_slave.cnf #从mysql的配置文件
port = 3307 #从mysql的配置文件中指定的侦听端口和socket文件
socket = /tmp/mysql_slave .sock
故障现象:
主mysql可以正常启动,但从mysql启动失败
[root@localhost ~]# /etc/init.d/mysqld_master start
Starting MySQL. [确定]
[root@localhost ~]# /etc/init.d/mysqld_slave start
Starting MySQL......Manager of pid-file quit without updati[失败]e.
故障解决:
查看从mysql的错误日志
151218 14:00:48 mysqld_safe Starting mysqld daemon with databases from /data/mysql_slave
151218 14:00:48 [Note] Plugin 'FEDERATED' is disabled.
151218 14:00:48 InnoDB: Initializing buffer pool, size = 8.0M
151218 14:00:48 InnoDB: Completed initialization of buffer pool
151218 14:00:49 InnoDB: Started; log sequence number 0 44233
151218 14:00:49 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use
151218 14:00:49 [ERROR] Do you already have another mysqld server running on port: 3306 ?
151218 14:00:49 [ERROR] Aborting
151218 14:00:49 InnoDB: Starting shutdown...
151218 14:00:54 InnoDB: Shutdown completed; log sequence number 0 44233
151218 14:00:54 [Note] /usr/local/mysql_slave/bin/mysqld: Shutdown complete
151218 14:00:54 mysqld_safe mysqld from pid file /data/mysql_slave/localhost.pid ended
[root@localhost ~]#
错误日志显示端口已经在使用。唉!到这里就很奇怪了之前不是已经更改了侦听的端口吗?看样子从mysql应该是使用了主mysql的配置文件,至于为什么会这样我也想不通。
下面就说下我是如何解决的
[root@localhost ~]# mv /etc/my_slave.cnf /usr/local/mysql_slave/my.cnf
[root@localhost ~]# vim /etc/init.d/mysqld_slave
找到
# Try to find basedir in /etc/my.cnf
conf=/etc/my_slave.cnf
print_defaults=
将conf的值删除,即"conf="就好
现在再来启动从mysql
[root@localhost ~]# /etc/init.d/mysqld_slave start
Starting MySQL. [确定]
[root@localhost ~]# ps aux|grep mysql
root 4322 0.0 0.1 6680 1340 pts/0 S 14:26 0:00 /bin/sh /usr/local/mysql_slave/bin/mysqld_safe --datadir=/data/mysql_slave --pid-file=/data/mysql_slave/www.test.com.pid
mysql 4444 0.0 4.2 400800 43748 pts/0 Sl 14:26 0:00 /usr/local/mysql_slave/bin/mysqld --basedir=/usr/local/mysql_slave --datadir=/data/mysql_slave --user=mysql --log-error=/data/mysql_slave/www.test.com.err --pid-file=/data/mysql_slave/www.test.com.pid --socket=/tmp/mysql_slave.sock --port=3307
root 4499 0.0 0.1 6680 1340 pts/0 S 14:28 0:00 /bin/sh /usr/local/mysql_master/bin/mysqld_safe --datadir=/data/mysql_master --pid-file=/data/mysql_master/www.test.com.pid
mysql 4567 0.0 1.4 130340 14444 pts/0 Sl 14:28 0:00 /usr/local/mysql_master/bin/mysqld --basedir=/usr/local/mysql_master --datadir=/data/mysql_master --user=mysql --log-error=/data/mysql_master/www.test.com.err --pid-file=/data/mysql_master/www.test.com.pid
root 4594 0.0 0.0 6048 780 pts/0 S+ 14:30 0:00 grep mysql
两个mysql都启动了
故障环境:
在做mysql主从实验时,为了方便我在同一个机子上装了2个mysql
主的相关信息:
dasedir=/usr/local/mysql_master #主mysql的安装目录
datadir=/data/mysql_master #主mysql的数据库目录
conf=/etc/my_master.cnf #主mysql的配置文件
port = 3306 #主mysql的配置文件中指定的侦听端口和socket文件
socket = /tmp/mysql_master.sock
从的相关信息:
dasedir=/usr/local/mysql_slave #从mysql的安装目录
datadir=/data/mysql_slave #从mysql的数据库目录
conf=/etc/my_slave.cnf #从mysql的配置文件
port = 3307 #从mysql的配置文件中指定的侦听端口和socket文件
socket = /tmp/mysql_slave .sock
故障现象:
主mysql可以正常启动,但从mysql启动失败
[root@localhost ~]# /etc/init.d/mysqld_master start
Starting MySQL. [确定]
[root@localhost ~]# /etc/init.d/mysqld_slave start
Starting MySQL......Manager of pid-file quit without updati[失败]e.
故障解决:
查看从mysql的错误日志
151218 14:00:48 mysqld_safe Starting mysqld daemon with databases from /data/mysql_slave
151218 14:00:48 [Note] Plugin 'FEDERATED' is disabled.
151218 14:00:48 InnoDB: Initializing buffer pool, size = 8.0M
151218 14:00:48 InnoDB: Completed initialization of buffer pool
151218 14:00:49 InnoDB: Started; log sequence number 0 44233
151218 14:00:49 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use
151218 14:00:49 [ERROR] Do you already have another mysqld server running on port: 3306 ?
151218 14:00:49 [ERROR] Aborting
151218 14:00:49 InnoDB: Starting shutdown...
151218 14:00:54 InnoDB: Shutdown completed; log sequence number 0 44233
151218 14:00:54 [Note] /usr/local/mysql_slave/bin/mysqld: Shutdown complete
151218 14:00:54 mysqld_safe mysqld from pid file /data/mysql_slave/localhost.pid ended
[root@localhost ~]#
错误日志显示端口已经在使用。唉!到这里就很奇怪了之前不是已经更改了侦听的端口吗?看样子从mysql应该是使用了主mysql的配置文件,至于为什么会这样我也想不通。
下面就说下我是如何解决的
[root@localhost ~]# mv /etc/my_slave.cnf /usr/local/mysql_slave/my.cnf
[root@localhost ~]# vim /etc/init.d/mysqld_slave
找到
# Try to find basedir in /etc/my.cnf
conf=/etc/my_slave.cnf
print_defaults=
将conf的值删除,即"conf="就好
现在再来启动从mysql
[root@localhost ~]# /etc/init.d/mysqld_slave start
Starting MySQL. [确定]
[root@localhost ~]# ps aux|grep mysql
root 4322 0.0 0.1 6680 1340 pts/0 S 14:26 0:00 /bin/sh /usr/local/mysql_slave/bin/mysqld_safe --datadir=/data/mysql_slave --pid-file=/data/mysql_slave/www.test.com.pid
mysql 4444 0.0 4.2 400800 43748 pts/0 Sl 14:26 0:00 /usr/local/mysql_slave/bin/mysqld --basedir=/usr/local/mysql_slave --datadir=/data/mysql_slave --user=mysql --log-error=/data/mysql_slave/www.test.com.err --pid-file=/data/mysql_slave/www.test.com.pid --socket=/tmp/mysql_slave.sock --port=3307
root 4499 0.0 0.1 6680 1340 pts/0 S 14:28 0:00 /bin/sh /usr/local/mysql_master/bin/mysqld_safe --datadir=/data/mysql_master --pid-file=/data/mysql_master/www.test.com.pid
mysql 4567 0.0 1.4 130340 14444 pts/0 Sl 14:28 0:00 /usr/local/mysql_master/bin/mysqld --basedir=/usr/local/mysql_master --datadir=/data/mysql_master --user=mysql --log-error=/data/mysql_master/www.test.com.err --pid-file=/data/mysql_master/www.test.com.pid
root 4594 0.0 0.0 6048 780 pts/0 S+ 14:30 0:00 grep mysql
两个mysql都启动了
编辑回复