2012-08-24 12 views
16

Cómo establecer el límite de memoria en el archivo my.cnf. Intenté con memory_limit = 64M. Pero muestra un error al reiniciar el servidor MYSQL. Cualquier ayuda por favor ...Cómo establecer el límite de memoria en el archivo my.cnf

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 
+2

¿Qué error estás recibiendo? –

+0

Tal vez estoy equivocado, ¿pero no es 'memory_limit' una configuración de PHP? Más información: 'my.cnf' es sobre MySql, no SQL server ... – Marco

+0

@ Aaron Hathaway me sale así' mysql ha fallado, por favor póngase en contacto con sysadmin (el resultado fue "mysql no se está ejecutando") '. – Juice

Respuesta

23

No hay variables tales como memory_limit en el archivo de MySQL my.cnf. Puede agregar variables solo desde MySQL server system variables. Lea esto How Mysql uses memory

Depende del tamaño de la memoria RAM de su servidor MySQL. Puede configurar el archivo my.cnf en consecuencia como base la siguiente fórmula básica para el cálculo de requerimientos de memoria de MySQL:

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

puede que tenga que configurar estos parámetros básicos.

las variables de muestra de my.cnf archivo:

#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 
+0

¿Su servidor tiene más de 16G de RAM? –

1

no hay ajuste de límite de memory_limit en MySQL. La única forma en que puede administrar o limitar el uso de memoria de MySQL es reducir la configuración de los tamaños de caché, búfer y grupo (los nombres de configuración exactos dependen del motor de almacenamiento que esté usando. Algunas configuraciones que se aplican al motor MyISAM (valor predeterminado) motor) es:

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 

para InnoDB tiene:

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

Si usted está buscando para cambiar el límite de memoria PHP en esa línea (memory_limit = 64M) debe estar en el archivo php.ini, no my.cnf que es el archivo de configuración para MySQL.

Cuestiones relacionadas