在Debian 8下的mysql 5.5.53 (innodb数据库)上
另一位mysql新手正在艰难地学习mysql。真正困难的方法。任何提供的帮助都将是极好的。我的网站离线了,这对我来说真的很重要。问题:我不知道我是有一个坏了的数据库,表还是mysql本身坏了。n mysql在一个数据库崩溃,但在另一个数据库没有崩溃。我使用以下命令登录到mysql
mysql -u root -p一旦进入,我输入
use drupal;
show tables;效果很好。然后我输入
use civicrm;
show tables;我得到了
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...然后我试一试
mysqlcheck -u root --password civicrm它将开始列出civicrm的所有表,但它在大约4个表崩溃后命中名为log_civicrm_*的表
Got error: 2013: Lost connection to MySQL server during query when executing 'CHECK TABLE ... '索引文件ib_logfile1和ib_logfile0都会重新构建。我已将my.cnf设置为
key_buffer = 512M
max_allowed_packet = 64M
thread_stack = 3M
thread_cache_size = 8我试图转储数据库civicrm,但它在启动时失败了。除了我尝试使用的名为log_civicrm_*的表之外,我可以转储几乎所有的表
innodb_force_recovery=5没有变化。文件/var/log/mysql/error.log显示
170127 21:48:27 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.5.53-0+deb8u1' socket: '/var/run/mysqld/mysqld.sock'
port: 3306 (Debian)
02:48:28 UTC - mysqld got signal 11 ;和
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (7f23402d6f40): is an invalid pointer
Connection ID (thread ID): 9
Status: NOT_KILLED任何从civicrm删除表的尝试都会失败,并显示2006错误。我在这里有什么选择?数据库是否需要修复,是一个表,还是其他什么东西坏了,我下一步该去哪里修复它?谢谢。
发布于 2017-02-02 02:30:10
找到了问题所在。日志表损坏。给可怜的mysql带来极大的混乱。只要使用CiviCRM表,它就会崩溃。
要解决问题,
查找civicrm数据库的存储位置。如果在典型的*nix发行版上使用mysql,可能是/var/lib/mysql/civicrm
关闭mysql (停止服务mysql )
创建一个新目录(mkdir logtables),现在将所有日志表移动到该目录(mv civicrm.log_* logtables)
清除error.log文件,这样您就可以在每次启动mysql时看到发生了什么。要执行此操作,请执行cat /dev/null >/var/ log / mysql /error.log (假设mysql服务器日志文件位于/var/log/mysql,您需要在发出该命令之前对其进行检查)
启动mysql (服务mysql启动)
如果您没有root权限,那么当您尝试移动日志表时,操作系统将会崩溃。建议使用sudo (例如sudo mv civicrm.log_*)或su root将您的权限提升到根用户,然后疯狂,但不要太疯狂。请记住,Unix/Linux中没有撤消功能。在启动mysql之后,检查mysql服务器的日志文件,看看它是否再次运行正常。
https://stackoverflow.com/questions/41907028
复制相似问题