001-005650

パッケージ版 Garoon

関心あり
0人の方が関心を示しています。

[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...

 

【再現手順】

  1. データベースエンジンの起動スクリプトを実行します。

    例:
    # /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のプロセスを強制終了し、再度データベースエンジンの起動スクリプトを実行してください。

  1. 起動しているMySQLのプロセスを強制終了します。

    例:
    # kill -9 (MySQLのプロセス番号)

  2. データベースエンジンの起動スクリプトを実行します。

    例:
    # /etc/init.d/cyde_5_0 start

 

補足:

  • 最後に起動したプロセスを残して、その他のMySQLプロセスをすべて強制終了すると、
    MySQLのプロセスIDを保持したファイル(pidファイル)が作成され正常動作に戻ります。

  • 最後に起動したプロセスを強制終了した場合は、その他のすべてのMySQLプロセスを
    強制終了した後でデータベースエンジンの起動スクリプトを実行してください。

関連記事

関連ワード

350Attention