mysql中其中2台從服務器不正常關閉導致,實例啟動不起來問題解決
對於主從配置和啟動網上可以看到大篇的案例和講解,這裡我遇到了幾個棘手的問題,就是2台從服務器無法正常啟動,實例起不來,原因是有人在晚上做服務器關閉的時候沒有先關閉mysql服務,在關閉服務器,到時第二天無法啟動!問題轉接到我這裡看了,仔細看錯誤日志,變可以看出端倪,以下是錯誤信息; www.2cto.com
[root@CloneSlave01 data]# tail -100 CloneSlave01.err
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
121211 10:03:27 InnoDB: Unable to open the first data file
InnoDB: Error in opening ./ibdata1
121211 10:03:27 InnoDB: Operating system error number 11 in a file operation.
InnoDB: Error number 11 means 'Resource temporarily unavailable'.
InnoDB: Some operating system error numbers are described at
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/operating-system-error-codes.html
121211 10:03:27 InnoDB: Could not open or create data files.
121211 10:03:27 InnoDB: If you tried to add new data files, and it failed here,
121211 10:03:27 InnoDB: you should now edit innodb_data_file_path in my.cnf back
121211 10:03:27 InnoDB: to what it was, and remove the new ibdata files InnoDB created
121211 10:03:27 InnoDB: in this failed attempt. InnoDB only wrote those files full of
121211 10:03:27 InnoDB: zeros, but did not yet use them in any way. But be careful: do not
121211 10:03:27 InnoDB: remove old data files which contain your precious data!
121211 10:03:27 [ERROR] Plugin 'InnoDB' init function returned error.
121211 10:03:27 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
121211 10:03:27 [ERROR] Unknown/unsupported storage engine: innodb
121211 10:03:27 [ERROR] Aborting
121211 10:03:27 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
121211 10:03:27 mysqld_safe mysqld from pid file /usr/local/mysql/data/CloneSlave01.pid ended
以上的問題,需要剔除ibdata 以及ib_logfile0、ib_logfile1這3個文件便可以正常啟動
121211 10:17:37 InnoDB: Completed initialization of buffer pool
InnoDB: The first specified data file ./ibdata1 did not exist:
InnoDB: a new database to be created!
121211 10:17:37 InnoDB: Setting file ./ibdata1 size to 10 MB
InnoDB: Database physically writes the file full: wait...
121211 10:17:37 InnoDB: Log file ./ib_logfile0 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile0 size to 5 MB
InnoDB: Database physically writes the file full: wait...
121211 10:17:38 InnoDB: Log file ./ib_logfile1 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile1 size to 5 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: 127 rollback segment(s) active.
InnoDB: Creating foreign key constraint system tables
InnoDB: Foreign key constraint system tables created
121211 10:17:38 InnoDB: Waiting for the background threads to start
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
121211 10:17:39 InnoDB: 1.1.7 started; log sequence number 0
121211 10:17:39 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use
121211 10:17:39 [ERROR] Do you already have another mysqld server running on port: 3306 ?
121211 10:17:39 [ERROR] Aborting
121211 10:17:39 InnoDB: Starting shutdown...
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files
再次啟動的時候可以看出有端口占用了3306導致無法啟動,由於這是測試無關緊要,就沒做端口變更;下面進行查看;
[root@CloneSlave01 data]# netstat -tpln |grep 3306
tcp 0 0 :::3306 :::* LISTEN 3237/mysqld
[root@CloneSlave01 data]# kill 3237
[root@CloneSlave01 data]# netstat -tpln |grep 3306
[root@CloneSlave01 data]# service mysqld restart
MySQL server PID file could not be found! [FAILED]
Starting MySQL.. [ OK ]
[root@CloneSlave01 data]# service mysqld restart
Shutting down MySQL. [ OK ]
Starting MySQL.. [ OK ]
[root@CloneSlave01 data]#
我們提出3306的占用端口,即可重新啟動,看上面的效果,另一台的操作方法和步驟和以上大同小異,我就不再次貼出來,當然啟動好以後還要測試相關的數據完整性等問題!
總結:我們在關閉服務器的時候,一定要了解服務器的有哪些服務,需要我們提前做好關閉的,才能保證我們數據的安全可靠。