WenRou's Blog
mysql提示Table is read only的解决方法
2013-9-27 温柔哥

mysql提示Table is read only的解决方法



搬家网站,恢复好网站后。打开网站提示错误,“Table ‘xxxxxxx’ is read only”。


其实这样的问题,一般都是备份数据库的时候没有按照正常的方法备份。直接在MYSQL DATA目录下面复制的数据,然后上传到新服务器上。造成数据库的权限或者属主不正确导致的。


登陆客户的SSH,进入网站MYSQL下面,修改网站数据库的属主和权限。


运行命令:


chown -R mysql:mysql /var/lib/mysql/juxian/

chmod -R 0777 /var/lib/mysql/juxian/


给数据库目录的所属用户和组改为mysql,并加上777的权限。


然后,运行命令:


cd /var/lib/mysql/bin/

mysqladmin -u root -p flush-tables


运行flush-tables后,刷新网站,是不是已经好啦,read only问题解决。


 


超级无敌最简单方法:用root账号通过phpmyadmin进入mysql运行SQL语句:FLUSH TABLE


 


在网上找的,先保存一下!


今天,把mysql下一个数据的表复制到另一个文件夹,结果访问时,提示”Table is readonly”的错误。


我的主机是centos5,因为之前遇到很多权限问题,当看到这个提示时,第一反应就是数据表的权限设置除了问题。


给出错的表文件赋予写权限之后,还是提示出错。google之后发现还需要flush一下才行。用


mysqladmin -u <username> -p flush-tables 命令成功flush所有readonly的表后,问题解决。


此次解决mysql table is readonly的具体步骤是:



给mysql的数据库目录加上可写权限,即777

到mysql的Bin目录执行刷新 

mysqladmin -u <username> -p flush-tables 

另:更改了mysql权限表,可以重启mysql 服务器

mysqladmin -u <username> -p reload



为了避免下次再遇到此类问题时不至于无解,在此把mysql Table is readonly(mysql数据表只读)这个问题的解决方案做个总结。



遇到mysql table is readonly(数据表只读)之类的提示,从下面5个角度来检查问题的原因:


1.看看只读的表文件权限是否配置得当。

2.查看只读表是否上锁。

3. 查看的数据库用户对该数据库的只读表是否具有单独的访问控制。

4. 使用MySQL的优化或者修复操作对只读数据表进行修复(我用的是sqlyog)

5. 查看你的只读表是否为InnoDB类型,这种类型的表是不能复制使用的。




发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容