我遇到了一个以前从未遇到过的奇怪问题。我正在运行 Turnkey Linux LAMP 服务器(Debian),似乎我的 MySQL 服务器每天至少会无法访问一次。我完全不确定是什么原因造成的。在我重新启动它之前,我的最后几个日志是:
160108 0:54:09 [Note] Plugin 'FEDERATED' is disabled.
160108 0:54:09 InnoDB: The InnoDB memory heap is disabled
160108 0:54:09 InnoDB: Mutexes and rw_locks use GCC atomic builtins
160108 0:54:09 InnoDB: Compressed tables use zlib 1.2.8
160108 0:54:09 InnoDB: Using Linux native AIO
160108 0:54:09 InnoDB: Initializing buffer pool, size = 128.0M
160108 0:54:09 InnoDB: Completed initialization of buffer pool
160108 0:54:09 InnoDB: highest supported file format is Barracuda.
160108 0:54:09 InnoDB: Waiting for the background threads to start
160108 0:54:10 InnoDB: 5.5.46 started; log sequence number 111777334
160108 0:54:11 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.5.46-0+deb8u1' socket: '/var/run/mysqld/mysqld.sock' port: 0 (Debian)
我没有更改任何我能记得的默认设置,所以它应该在监听 3306。我的服务器上运行着几个 Wordpress 网站,所以数据库突然宕机是个坏消息。当我重新启动时,它马上恢复了,没有任何问题,并说它正在监听 3306:
160108 10:20:45 [Note] Server socket created on IP: '127.0.0.1'.
160108 10:20:45 [Note] Event Scheduler: Loaded 0 events
160108 10:20:45 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.5.46-0+deb8u1' socket: '/var/run/mysqld/mysqld.sock' port: 3306 (Debian)
有什么想法吗?谢谢!
更新:这是我的完整日志文件:http://pastebin.com/2G2CAVsw
问题:看来 tklbam-restore 导致了这个问题。我手动运行了备份,并注意到一旦进入进程的 DB 阶段,我的 Wordpress 服务器就无法再访问 MySQL。此外,备份进程似乎卡在我的一个 DB 表上。以下是最后几行:
table: trendsandteens/wp_wfNet404s
table: trendsandteens/wp_wfReverseCache
table: trendsandteens/wp_wfScanners
table: trendsandteens/wp_wfStatus
table: trendsandteens/wp_wfThrottleLog
table: trendsandteens/wp_wfVulnScanners
它只是备份 Wordfence 的表格。所以我不太清楚问题是什么... 有什么想法吗?这是我中断该过程后的回溯:http://pastebin.com/QV63cBPG
答案1
尝试使用 strace 启动 MySQL 并将输出存储到文件中。然后在它终止之前查看输出,看看是否有任何内容可以指向问题的原因。
但请注意,输出可能会变得非常大,因此请确保不要耗尽磁盘空间或对系统产生负面影响(例如,如果需要大量 I/O 才能将所有数据写入磁盘)。
如果您发现字符串被截断,这将有助于进一步调查,请使用-s
strace 的参数。
如果更简单的话,您可以使用将 strace 附加到现有进程-p processid
。