MySQL-内存不足错误

MySQL-内存不足错误,mysql,Mysql,最近我在MySQL错误日志中发现了“内存不足”错误,但是主机仍然有足够的物理内存和交换空间,根据free-k: total used free shared buffers cached Mem: 4087156 3842396 244760 0 615840 2031416 -/+ buffers/cache: 1195140 2892016 [错误]

最近我在MySQL错误日志中发现了“内存不足”错误,但是主机仍然有足够的物理内存和交换空间,根据
free-k

             total       used       free     shared    buffers     cached
Mem:       4087156    3842396     244760          0     615840    2031416
-/+ buffers/cache:    1195140    2892016
[错误]内存不足;检查mysqld或其他进程是否使用了所有可用内存;如果没有,您可能必须使用“ulimit”来允许mysqld使用更多内存,或者您可以添加更多交换空间

我担心有一个MySQL错误导致内存泄漏

MySQL的内存使用会动态增长吗? 如果是,什么因素或事件会导致MySQL分配更多内存? 当MySQL没有足够的内存时会有什么影响?如何避免

以下是机器配置: 操作系统Linux 2.6.18-128.el5PAE i386

MySQL服务器版本:5.0.50-enterprise-gpl-log MySQL企业服务器(gpl)

/etc/my.cnf:

[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
datadir         = /opt/mysql
skip-locking
key_buffer = 1G
max_allowed_packet = 2M
table_cache = 256
sort_buffer_size = 1M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache = 32
query_cache_size= 32M
thread_concurrency = 16
max_heap_table_size = 1G

auto_increment_increment = 10
auto_increment_offset = 1

server-id       = 20
log-warnings
log-slow-queries
skip-innodb
skip-slave-start
core-file

您是在内存不足错误发生的同时检查内存使用情况,还是在日志中看到条目后检查内存使用情况?大型或低效的查询可能会在执行过程中导致内存不足错误,但在错误发生并停止查询后,系统将恢复正常。