MySQLのコネクション数が最大になるとどうなるのか確認してみる
CentOSにPHPのとりあえずの開発環境を作成してみる
の続き
MySQLのコネクション数が最大になるとどうなるのか確認してみる。
まず、max_connectionsを確認すると、151になっている。
mysql> show variables like 'max%'; +----------------------------+----------------------+ | Variable_name | Value | +----------------------------+----------------------+ | max_allowed_packet | 1048576 | | max_binlog_cache_size | 18446744073709547520 | | max_binlog_size | 1073741824 | | max_connect_errors | 10 | | max_connections | 151 | | max_delayed_threads | 20 | | max_error_count | 64 | | max_heap_table_size | 16777216 | | max_insert_delayed_threads | 20 | | max_join_size | 18446744073709551615 | | max_length_for_sort_data | 1024 | | max_long_data_size | 1048576 | | max_prepared_stmt_count | 16382 | | max_relay_log_size | 0 | | max_seeks_for_key | 18446744073709551615 | | max_sort_length | 1024 | | max_sp_recursion_depth | 0 | | max_tmp_tables | 32 | | max_user_connections | 0 | | max_write_lock_count | 18446744073709551615 | +----------------------------+----------------------+
コネクションをたくさん生成するPHPプログラムを作成。
test.php
<?php $stock = array(); while ($link = mysql_connect('localhost', 'ユーザー名', 'パスワード', true)) { $stock[] = $link; echo count($stock) . "\n"; } echo mysql_error();
実行すると、エラーになる。
$ php test.php 1 2 3 ・・・ 150 151 152 PHP Warning: mysql_connect(): Too many connections in /home/hoge/test.php on line 3