突然MySQLサーバーが落ちて/var/log/mysqld.log を見たら”InnoDB: Error: pthread_create returned 11” が出力されていた・・・。
ついでに下記のログも解決する。
140105 17:35:12 [Warning] '--default-character-set' is deprecated and will be removed in a future release. Please use '--character-set-server' instead. 140105 17:35:12 [Warning] '--skip-locking' is deprecated and will be removed in a future release. Please use '--skip-external-locking' instead.
MySQLが落ちたのはファイルディスクリプタ数の上限に引っかかったっぽいので、ulimitコマンドでファイルディスクリプタ数の上限値を変更すれば解決。
※ファイルディスクリプタはプロセスに割り当てる各種リソースの制限を行うためのもので、ulimit -n を実行すると現在のファイルディスクリプタの上限値(SoftLimitおよびHardLimit)が確認できる。
とりあえず無制限にする。
# ulimit -s unlimited # service mysqld start
下の2行は将来的になくなるから違うオプションを指定しろってだけらしい。
[mysqld]配下のdefault-character-setをcharacter-set-serverに、skip-lockingをskip-external-lockingにすれば良い。
ちなみにうちのmy.cnfは下記。
[client] port = 3306 socket = /var/lib/mysql/mysql.sock [mysqld] character-set-server=utf8 datadir=/var/lib/mysql user=mysql port = 3306 socket = /var/lib/mysql/mysql.sock skip-external-locking key_buffer_size = 16M max_allowed_packet = 1M table_open_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M log-bin=mysql-bin binlog_format=mixed server-id = 1 [mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash [myisamchk] key_buffer_size = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
コメント