001-005650
[Linux版の現象]データベースエンジンが起動している状態でさらに起動スクリプトを実行すると、大量にエラーログが出力され *.pidファイルが削除される。
- 種別
- 不具合
- 機能
-
- 全般
- 再現バージョン
-
- 3.5.0
- 3.5.1
- 3.5.2
- 3.5.3
- 3.5.4
- 3.5.5
- 改修バージョン
- 3.7.0
- 公開日
- 2012-03-05
- 更新日
- 2013-05-31
詳細
【準備】
- データベースエンジンが起動している状態にします。
例:
# /etc/init.d/cyde_5_0 status
mysql(xxxxx) is running...
【再現手順】
- データベースエンジンの起動スクリプトを実行します。
例:
# /etc/init.d/cyde_5_0 start
→現象発生:
- mysqlディレクトリ内のerror.log((インストールディレクトリ)/mysql-5.0/data/error.log)に次のエラーが出力されます。
-----------------------
InnoDB: Unable to lock /usr/local/cybozu/mysql-5.0/data/ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
hh:mm:ss InnoDB: Retrying to lock the first data file
InnoDB: Unable to lock /usr/local/cybozu/mysql-5.0/data/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 /usr/local/cybozu/mysql-5.0/data/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 /usr/local/cybozu/mysql-5.0/data/ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
hh:mm:ss InnoDB: Unable to open the first data file
InnoDB: Error in opening /usr/local/cybozu/mysql-5.0/data/ibdata1
hh:mm:ss 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
hh:mm:ss InnoDB: Could not open or create data files.
hh:mm:ss InnoDB: If you tried to add new data files, and it failed here,
hh:mm:ss InnoDB: you should now edit innodb_data_file_path in my.cnf back
hh:mm:ss InnoDB: to what it was, and remove the new ibdata files InnoDB created
hh:mm:ss InnoDB: in this failed attempt. InnoDB only wrote those files full of
hh:mm:ss InnoDB: zeros, but did not yet use them in any way. But be careful: do not
hh:mm:ss InnoDB: remove old data files which contain your precious data!
hh:mm:ss [ERROR] Plugin 'InnoDB' init function returned error.
hh:mm:ss [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
hh:mm:ss [ERROR] Unknown/unsupported storage engine: InnoDB
hh:mm:ss [ERROR] Abortinghh:mm:ss
[Note] /usr/local/cybozu/mysql-5.0/bin/mysqld: Shutdown complete
hh:mm:ss mysqld_safe mysqld from pid file /usr/local/cybozu/mysql-5.0/data/localhost.localdomain.pid ended
----------------------- - MySQLのプロセスIDを保持したファイル((インストールディレクトリ)/mysql-5.0/data/*.pid)が削除されます。
- データベースエンジンの起動状況を確認すると、停止状態となっています。
例:
# /etc/init.d/cyde_5_0 status
mysql is not running...
補足:
- データベースエンジンの起動状況は「not running...」と表示されますが、MySQLのプロセスは残ったままの状態となります。
- バージョン 3.1.3 以前のガルーンでは、データベースエンジンが起動した状態でさらに起動スクリプトを実行すると次のログが出力されます。
-----------------------
hh:mm:ss mysqld_safe A mysqld process already exists
-----------------------
回避/対応方法
【対応方法】
MySQLのプロセスを強制終了し、再度データベースエンジンの起動スクリプトを実行してください。
- 起動しているMySQLのプロセスを強制終了します。
例:
# kill -9 (MySQLのプロセス番号) - データベースエンジンの起動スクリプトを実行します。
例:
# /etc/init.d/cyde_5_0 start
補足:
- 最後に起動したプロセスを残して、その他のMySQLプロセスをすべて強制終了すると、
MySQLのプロセスIDを保持したファイル(pidファイル)が作成され正常動作に戻ります。 - 最後に起動したプロセスを強制終了した場合は、その他のすべてのMySQLプロセスを
強制終了した後でデータベースエンジンの起動スクリプトを実行してください。