我的服务器上的数据库遇到了问题(注意:所有其他数据库都正常工作)。
一旦我尝试用mysqldump导出它,我就会得到以下错误:
# mysqldump -u root -pXXXXXXXXX databasename > /root/databasename.sql
mysqldump: Couldn't execute 'show table status like 'apps'': Lost connection to MySQL server during query (2013)此外,phpMyAdmin在选择此数据库时会抛出一个错误,并立即注销。但是,使用此数据库的网站运行良好。我还可以在名为“app”的表上执行SELECT语句。
我尝试重新启动MySQL守护进程以及REPAIR DATABASE和REPAIR TABLE,但问题仍然存在。我以前有过这个问题,后来它不知怎么地消失了,我什么也不做就解决了这个问题。现在,问题回来了,我根本无法创建这个数据库的备份。
MySQL版本:
mysql> SHOW VARIABLES LIKE "%version%";
+-------------------------+-------------------+
| Variable_name | Value |
+-------------------------+-------------------+
| protocol_version | 10 |
| version | 5.1.66-0+squeeze1 |
| version_comment | (Debian) |
| version_compile_machine | x86_64 |
| version_compile_os | debian-linux-gnu |
+-------------------------+-------------------+切换到数据库时的phpMyAdmin错误消息
SELECT `comment`
FROM `phpmyadmin`.`pma_column_info`
WHERE db_name = 'databasename'
AND table_name = ''
AND column_name = '(db_comment)'
MySQL said:
#2006 - MySQL server has gone away发布于 2013-07-02 12:20:21
MySQL服务器的大多数常见原因(以及修复)已经消失(错误2006):
服务器超时并关闭连接。如何修复:
检查
wait_timeout variable在my.cnf中,配置文件足够大。
关于Debian:
sudo nano /etc/mysql/my.cnf, 设置wait_timeout = 600秒
sudo /etc/init.d/mysql restart. wait_timeout的默认值可能约为28800秒(8小时)。
第二件要检查的是
服务器丢弃了不正确或太大的数据包。如果mysqld获得的数据包太大或不正确,则假定客户端出了问题并关闭了连接。您可以通过增加max_allowed_packet文件中的my.cnf值来增加最大数据包大小限制。
关于Debian:
sudo nano /etc/mysql/my.cnf,
max_allowed_packet = 64M 然后
sudo /etc/init.d/mysql restart.发布于 2013-07-01 13:18:38
在物理级别上访问磁盘上的数据库文件似乎是一个问题。
我建议在尝试mysqldump之前先尝试一个REPAIR TABLE,以便确保数据库表文件是正确的。还请检查mysql错误日志,以确保您发现了正确的问题。这将适用于MyISAM表。如果您正在使用InnoDB表,请首先尝试执行以下操作:
ALTER TABLE tablename ENGINE=MyISAM;
REPAIR TABLE tablename;
ALTER TABLE tablename ENGINE=InnoDB;有关命令语法的更多信息,请参见:http://dev.mysql.com/doc/refman/5.1/en/repair-table.html
https://serverfault.com/questions/519607
复制相似问题