Php 如何在my.cnf文件中设置内存限制

Php 如何在my.cnf文件中设置内存限制,php,mysql,Php,Mysql,如何在my.cnf文件中设置内存限制。我尝试了内存限制=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 ski

如何在
my.cnf
文件中设置内存限制。我尝试了
内存限制=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

MySQL
my.cnf
文件中没有像
memory\u limit
这样的变量。只能从中添加变量。读这个

这取决于MySQL服务器的RAM大小。您可以根据以下MySQL内存需求计算的基本公式,相应地配置您的
my.cnf
文件:

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

MySQL中没有内存限制设置。管理或限制MySQL内存使用的唯一方法是降低缓存、缓冲区和池大小的设置(确切的设置名称取决于您使用的存储引擎)。 适用于MyISAM引擎(默认引擎)的某些设置为:

对于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文件中,而不是myl.cnf,它是MySQL的配置文件。

也许我错了,但是
memory\u limit
不是php配置吗?更多:
my.cnf
是关于MySQL的,而不是SQL server…@Aaron Hathaway我得到的结果是
MySQL失败了,请联系系统管理员(结果是“MySQL没有运行”)
@Marco Mine是Mysql服务器而不是SQL。你应该检查这个答案,这个答案也涵盖了你的问题:你的服务器是否有超过16G的RAM?“K字节的内存”或“字节的内存”?我以为所有配置值都在字节中。要添加到Innodb列表的另一个变量是“Innodb\u buffer\u pool\u instances”。它在RAM中创建多个池。这来自文档():对于具有数千GB范围内缓冲池的系统,将缓冲池划分为单独的实例可以通过减少不同线程对缓存页进行读写时的争用来提高并发性。此功能通常适用于缓冲池大小在数千GB范围内的系统。innodb_附加_mem_pool_大小为deprecated
innodb_buffer_pool_size = 256M
innodb_additional_mem_pool_size = 20M
innodb_log_file_size = 64M
innodb_log_buffer_size = 8M