mySQLを特定のフォルダにインストールした。サーバーを実行してアカウントやデータベースなどを作成できましたが、サーバーを起動しようとするたびにエラーが発生します。
$ mysqld_safe --defaults-file=mysql.cnf &
[1] 2002
[compute-0-5 /amber2/scratch/myname/mysql]$ 130725 17:56:24 mysqld_safe Logging to '/amber2/scratch/myname/mysql/data/compute-0-5.local.err'.
130725 17:56:24 mysqld_safe Starting mysqld daemon with databases from /amber2/scratch/myname/mysql/data
130725 17:56:25 mysqld_safe mysqld from pid file /amber2/scratch/myname/mysql/data/compute-0-5.local.pid ended
[1]+ Done mysqld_safe --defaults-file=mysql.cnf
データフォルダー内のエラーファイル:
130725 17:17:53 mysqld_safe Starting mysqld daemon with databases from /amber2/scratch/myname/mysql/data
2013-07-25 17:17:54 0 [Warning] option 'read_buffer_size': unsigned value 2147483648 adjusted to 2147479552
2013-07-25 17:17:54 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2013-07-25 17:17:54 28189 [Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 5000)
2013-07-25 17:17:54 28189 [Warning] Buffered warning: Changed limits: table_cache: 431 (requested 2000)
2013-07-25 17:17:54 28189 [Note] Plugin 'FEDERATED' is disabled.
2013-07-25 17:17:54 28189 [Note] InnoDB: The InnoDB memory heap is disabled
2013-07-25 17:17:54 28189 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2013-07-25 17:17:54 28189 [Note] InnoDB: Compressed tables use zlib 1.2.3
2013-07-25 17:17:54 28189 [Note] InnoDB: Using Linux native AIO
2013-07-25 17:17:54 28189 [Note] InnoDB: Not using CPU crc32 instructions
2013-07-25 17:17:54 28189 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2013-07-25 17:17:54 28189 [Note] InnoDB: Completed initialization of buffer pool
2013-07-25 17:17:54 28189 [Note] InnoDB: Highest supported file format is Barracuda.
InnoDB: Error: pthread_create returned 12
130725 17:17:55 mysqld_safe mysqld from pid file /amber2/scratch/myname/mysql/data/compute-0-18.local.pid ended
しかし、なぜpthread_createエラー12が発生するのですか?これは十分なスペースがないことに関連しているようです。 mysqlフォルダー(/ amnber2 // scratch/myname/mysql)が存在するデバイスには、スペースがあります。
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 49G 5.0G 41G 11% /
...
10.255.255.46:/export/scratch
15T 11T 4.2T 72% /amber2/scratch
ホームディレクトリクォータにも数ギグあります
$ quota -v
Disk quotas for user myname (uid 41222):
Filesystem blocks quota limit grace files quota limit grace
10.255.255.45:/export/ncms
22986221 26214400 26214400 0 0 0
10.255.255.46:/export/scratch
7321108 0 0 0 0 0
つまり、25Gのうち22Gを使用しています。
$ du -sh ~/.
22G /home/ncms/myname/.
私には空きメモリもあります:
$ free -mg
total used free shared buffers cached
Mem: 62 41 21 0 0 28
-/+ buffers/cache: 12 49
Swap: 64 13 51
私のmysql構成ファイルで:
myisam_sort_buffer_size=4G
myisam_max_sort_file_size=200G
read_buffer_size=2G
では、なぜエラーが発生するのですかpthread_create
サーバーの起動中にエラーが発生しましたか?
$ /usr/local/mysql/bin/perror 12
OS error code 12: Cannot allocate memory
もちろん、メモリはありますnowですが、MySQLは実行されていませんnow。
それらの数ギガバイトの構成エントリーを削除し、それらがなくてもサーバーを始動できることを確認してください。疑わしいread_buffer_size
はあなたを引き付けているものかもしれませんが、それらはすべて新しいサーバーには不必要に大きいです。表示されている警告max_open_files
およびtable_cache
設定の別の場所にも大きな値を設定して、パフォーマンスを高めるためにMySQLを微調整しようとしていることを示唆しています。
それはあなたが期待することをするつもりはありません。バッファーとキャッシュのサイズに関しては、多いほど良いとは限りません。特別な理由がない限り、カスタム設定をコメントアウトしてデフォルトから始めます。変更を行う場合は、変更が互いに直接関連していない限り、一度に1つ以上変更しないでください。