Как установить ограничение памяти в файле my.cnf - программирование
Подтвердить что ты не робот

Как установить ограничение памяти в файле my.cnf

Как установить ограничение памяти в файле 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
4b9b3361

Ответ 1

В MySQL my.cnf нет таких переменных, как memory_limit. Вы можете добавлять переменные только из системных переменных сервера MySQL. Прочитайте это Как Mysql использует память

Это зависит от размера RAM вашего сервера MySQL. Вы можете настроить ваш файл my.cnf соответствующим образом на основе следующей базовой формулы для расчета потребности в памяти MySQL:

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

Ответ 2

В MySQL нет предела ограничения памяти_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) должна находиться в файле php.ini, а не my.cnf, который является файлом конфигурации для MySQL.