我有一台专用服务器(不是 VPS/VM),运行 x64 Centos 6.5 Final + cPanel。这台机器有 16 GB 内存。我在这台服务器上运行一个游戏服务器(使用 MySQL 作为数据存储的后端)。我还在这台机器上运行我的网站和论坛。
最近,我开始收到很多关于资源不足以运行游戏服务器的错误,所以我使用了以下方法https://tools.percona.com/生成一个新的my.cnf
(针对我的服务器进行了优化)。
从那时起,与资源相关的警告就消失了,但是 MySQL 服务器现在仍然频繁崩溃。
这是我/etc/my.cnf
到目前为止的情况:
[mysqld]
innodb_file_per_table=1
open_files_limit=3576
# MyISAM #
key-buffer-size = 32M
myisam-recover = FORCE,BACKUP
# SAFETY #
max-allowed-packet = 16M
max-connect-errors = 1000000
# CACHES AND LIMITS #
tmp-table-size = 32M
max-heap-table-size = 32M
query-cache-type = 0
query-cache-size = 0
max-connections = 500
thread-cache-size = 100
open-files-limit = 65535
table-definition-cache = 4096
table-open-cache = 100
# INNODB #
innodb-flush-method = O_DIRECT
innodb-log-files-in-group = 2
innodb-flush-log-at-trx-commit = 1
innodb-file-per-table = 1
innodb-buffer-pool-size = 8G
这是我的mysql-error.log
:http://pastebin.com/Qp8hMywg
和我的server.domain.com.err
:http://pastebin.com/1KzaRMRV
更新
我运行了 MySQL Tuner perl 脚本,其输出如下:http://pastebin.com/7zxbTKa7
知道是什么原因导致它频繁崩溃吗?
提前感谢任何帮助/提示。
答案1
我不太了解 MySQL 问题,但 Percona 似乎已经意识到了这个问题。
目前不兼容的原因有:
- Percona Server 和 XtraDB 包含从 MyQL 5.5 反向移植的功能。一些 MySQL 5.5 功能添加了新的
错误代码。- 一些具有 XtraDB 功能的 Percona Server 添加了新的错误代码。
答案2
您的数据库似乎已损坏;我建议按照错误消息中的链接中的步骤进行操作; http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html,但首先要备份数据库文件!
首先设置
[mysqld]
innodb_force_recovery = 1
尝试重新启动数据库。您应该能够将表转储到新的干净数据库中。如果这不起作用,请将其设置为
[mysqld]
innodb_force_recovery = 2
然后再次重启。MySQL 不建议在生产数据库上使用高于 3 的值,因为可能会造成额外的损坏。
另一件要看的问题是,如果您最近移动了数据库,您是否确保也移动了 innodb 日志文件?