MySQL(MariaDB)经常崩溃

我最近将运行MySQL的旧服务器迁移到运行MariaDB 5.5的新VPS。 我没有太多的运行在服务器(只有几个PHP站点)和空闲内存似乎是好的,但数据库不断崩溃 – 有时每隔几天,其他时间在几个小时内。

我在日志中收到以下错误:

131231 1:43:04 [ERROR] mysqld: Out of memory (Needed 128917504 bytes) 131231 1:43:04 [ERROR] mysqld: Out of memory (Needed 96681984 bytes) 131231 1:43:04 [ERROR] mysqld: Out of memory (Needed 72499200 bytes) 131231 1:43:04 [ERROR] mysqld: Out of memory (Needed 54362112 bytes) 131231 1:43:04 InnoDB: The InnoDB memory heap is disabled 131231 1:43:04 InnoDB: Mutexes and rw_locks use GCC atomic builtins 131231 1:43:04 InnoDB: Compressed tables use zlib 1.2.3.4 131231 1:43:04 InnoDB: Using Linux native AIO 131231 1:43:04 InnoDB: Initializing buffer pool, size = 128.0M InnoDB: mmap(137756672 bytes) failed; errno 12 131231 1:43:04 InnoDB: Completed initialization of buffer pool 131231 1:43:04 InnoDB: Fatal error: cannot allocate memory for the buffer pool 131231 1:43:04 [ERROR] Plugin 'InnoDB' init function returned error. 131231 1:43:04 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 131231 1:43:04 [Note] Plugin 'FEEDBACK' is disabled. 131231 1:43:04 [ERROR] Unknown/unsupported storage engine: InnoDB 131231 1:43:04 [ERROR] Aborting 131231 1:43:04 [Note] /usr/sbin/mysqld: Shutdown complete 

我已经玩了InnoDB堆的my.cnf设置,似乎没有帮助。 以下是相关部分:

 innodb_buffer_pool_size = 128M innodb_log_buffer_size = 8M innodb_file_per_table = 1 innodb_open_files = 400 innodb_io_capacity = 400 innodb_flush_method = O_DIRECT 

我似乎有很多免费的RAM,而且我也有一些交换:

 root@phoenix:~# free -m total used free shared buffers cached Mem: 994 923 71 0 19 417 -/+ buffers/cache: 486 508 Swap: 1023 131 892 

我该如何解决/解决这个问题? 我已经search了互联网寻找线索,但没有任何帮助。

我希望这对你有帮助。

尝试

performance_schema = off

在你的configuration的[mysqld]部分。

https://mariadb.com/blog/starting-mysql-low-memory-virtual-machines