mysql的Table is readonly

2014-07-15 01:59 ·Ab叔 2030 1 <- 点击左侧的数字“攒”一个吧

首先检查是不是mysql设置了read_only:

SHOW VARIABLES LIKE '%read_only%'

如果结果是:

Variable_nameValue  
read_only OFF

那就表明没有设置read_only项。如果是On表示所有数据库中的数据仅用于读取访问,不能写了,所以需要将此项设为OFF。

mysql> set GLOBAL read_only = false;

还不行的话就得使用mysqladmin flush-tables命令关闭所有不在用的表并在当前执行的线程结束时,标记所有在用的表准备被关闭。这将有效地释放大多数在用的内存。

mysqladmin -u root -p flush-tables

然后重启数据库或者使用这个命令关闭所有打开的表,并锁定所有的读表和基地。

FLUSH TABLES WITH READ LOCK;

我的问题就是这么解决的。