位置:海鸟网 > IT > mySQL >

mysql中“Table ‘*’ is read only”的解决办法

今天还原一个数据库,之前是在linux下面直接Copy的data下面整个数据库文件夹,在phpMyAdmin里面重新赋予新用户相应权限后,drupal成功连接上数据库。但出现N多行错误提示,都是跟Cache相关的表是‘Read only‘,而且phpMyAdmin里面优化表也是提示”Table ‘xxx’ is read only“。

我怀疑是文件权限的问题,所以将该数据库文件夹下面所有表文件chmod成777,chown成”_mysql”,但这次问题更严重,drupal里面现实table crached。没办法,马上Google,发现其实解决起来挺容易的。

首先,找到mysqladmin所在位置,一般都在mysql/bin下面,然后运行一下命令:

  ./mysqladmin -u root -p flush-tables

之后输入root账号的密码,马上就好了,没有任何任何提示,重新打开drupal,一切正常。

通过这次,也找到了数据库文件的正确权限设置:data下面数据库文件夹700,表文件660,所有文件都应owned by mysql。