今天,我们的mysql数据库服务器突然中断了。在重新启动服务器后的几分钟内,服务器一次又一次地关闭。为了了解正在发生的事情,我们暂时将应用程序置于维护模式中,发现数据库不再关闭。这帮助我找出了发生了什么;
一个特定表上的每个UPDATE或INSERT都会导致大量SELECT查询(在同一表上)“等待表元数据锁”。由于这个原因,许多打开的连接在几秒钟内就出现了,最后服务器崩溃了。我不明白为什么一个简单的UPDATE app.notes SET user_id=5 WHERE note_id=1查询花了这么长时间,甚至在10分钟之后,等待仍未完成。该查询上的SHOW PROCESSLIST状态仍在执
作为mysql根用户,我在运行mysqldump时遇到了困难。当我试图备份mysql表时,会得到以下错误:
mysqldump: Got error: 1142: SELECT,LOCK TABL command denied to user
'root'@'localhost' for table 'cond_instances' when using LOCK TABLES
有人以前见过吗?我看到了对mysql和mysqldump的一些引用,它们是不同的版本,但是当我运行时,它们在同一个目录中。
我正在运行MySQL 5.5.8。
罗兰多曾在其他问题上发布过答案,如何使一般日志成为一个表,我已经这样做了,但我想安排清洁,以便只保留最后3天。他发布了这篇文章,但是我不确定如何使用它,我可以用它作为bash脚本并将它作为一个预定的任务添加到cron中吗?
SET @old_log_state = @@global.general_log;
SET GLOBAL general_log = 'OFF';
CREATE TABLE mysql.general_log_new LIKE mysql.general_log;
INSERT INTO mysql.general_log_new
SELECT *
有时,我从MYSQL服务器获得错误:
Lost connection to MySQL server at 'reading initial communication packet', system error: 0
我找不到原因,因为大部分时间它是有效的,但是每周有几个小时我会遇到这个错误。我在谷歌上搜索过,但似乎只有永久存在此错误的用户。但在这种情况下,它只是偶尔发生。我检查了hosts.allow和hosts.deny,但是主机是允许的,并且没有被拒绝。
另外,有时我也会遇到错误:
File './database/table.MYD' not fou