19

my.cnfファイルにメモリ制限を設定する方法。で試してみましたmemory_limit = 64M。しかし、MYSQLサーバーの再起動中にエラーが表示されます。誰か助けてください...

my.cnf

[mysqld]
datadir=/home/mysql/
tmpdir=/home/mysqltmp
#max_connections = 175 #was 175
max_connections = 80
#max_connect_errors = 350 #was 250
max_connect_errors = 250
safe-show-database
skip-locking
key_buffer = 1024M # was 128M
max_allowed_packet = 6M
myisam_sort_buffer_size = 64M

#old settings, for 900 ish max maxconn
#sort_buffer_size = 32M
#read_buffer_size = 32M
#read_rnd_buffer_size = 32M

sort_buffer_size = 5M
read_buffer_size = 5M
read_rnd_buffer_size = 5M

query_cache_size= 1024M
query_cache_limit= 16M
max_heap_table_size = 128M
tmp_table_size = 128M
thread_concurrency = 16
wait_timeout = 10
innodb_file_per_table
innodb_log_file_size = 10485760
open_files_limit = 8192
low_priority_updates = 1 
#log_slow_queries = /var/log/mysql_slow.log
#log_queries_not_using_indexes = 1
#slow_queries_log_file = /var/log/mysql_slow.log
memory_limit = 64M 
# who set these? these are NOT memory settings, but rather integer settings.
#table_cache = 1024M
#thread_cache_size = 8M

table_cache = 512
thread_cache_size = 8

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[isamchk]
key_buffer = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M
4

2 に答える 2

27

memory_limit MySQLmy.cnfファイルのような変数はありません。MySQLサーバーのシステム変数からのみ変数を追加できます。これを読むMysqlがメモリを使用する方法

MySQLサーバーのRAMサイズによって異なります。my.cnfMySQLメモリ要件計算の次の基本式に基づいて、それに応じてファイルを構成できます。

key_buffer_size + (read_buffer_size + sort_buffer_size) * max_connections = K bytes of memory

これらの基本的なパラメーターを構成する必要がある場合があります。

my.cnfファイルのサンプル変数:

#MyISAM
key_buffer_size = 8G
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 2M
myisam_sort_buffer_size = 2M
join_buffer_size = 2M

#Innodb
innodb_buffer_pool_size = 16G
innodb_additional_mem_pool_size = 2G
innodb_log_file_size = 1G
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 30
innodb_file_format=barracuda
于 2012-08-24T06:37:02.173 に答える
1

MySQLにはmemory_limit制限設定はありません。MySQLのメモリ使用量を管理または制限できる唯一の方法は、キャッシュ、バッファ、およびプールサイズの設定を下げることです(正確な設定名は、使用しているストレージエンジンによって異なります。MyISAMエンジン(デフォルトエンジン)に適用されるいくつかの設定) は:

table_cache=1024
record_buffer=1M
sort_buffer_size=2M
read_buffer_size=2M
read_rnd_buffer_size=2M
myisam_sort_buffer_size=64M
thread_cache_size=128
query_cache_limit=1M
query_cache_size=64M
query_cache_type=1

InnoDBの場合、次のものがあります。

innodb_buffer_pool_size = 256M
innodb_additional_mem_pool_size = 20M
innodb_log_file_size = 64M
innodb_log_buffer_size = 8M

PHPのメモリ制限を変更する場合、その行(memory_limit = 64M)は、MySQLの構成ファイルであるmy.cnfではなく、php.iniファイルに含める必要があります。

于 2012-08-24T06:41:06.720 に答える