日期:2014-05-16  浏览次数:20596 次

Linux下MySql出现#1036 - Table ' user' is read only 错误解决方法(转)

前几天网站备案被注销了,只有暂时迁移到国外再做打算,换了两台VPS,第一台用服务商配置好的环境+Kloxo管理平台,可能内存少点,或者我哪里没有设置好,导致用不到几个小时就访问不了,又得重启VPS才行,所以前两天会出现偶尔访问不了博客的情况。

??????今天刚把第二台VPS的环境配置好,网站迁移过来,在美国洛杉矶机房。现在这台的vps内存稍大点,应该可以确保平稳运行了,速度也勉强可以。

??????这次博客搬家出现了点小情况,不过还是顺利解决了。

??????这次网站搬家采用直接打包mysql数据库和网页文件的形式进行迁移,上传好mysql?data目录里面的网站数据库至VPS上mysql存放数据库的目录里面,解压就行。我的VPS存放数据库的路径是?/usr/local/mysql/var。

??????上传好网站数据,解压,配置好数据库链接参数就行,网站就能正常连接上了,我本以为这已经是顺利迁移完成了,但后来操作的时候,发现只能读取数据库的内容,不能更改写入任何信息,提示#1036?-?Table?'*?'?is?read?only?(*号为任意表),也就是说表只有只读属性。

??????通过SSH,给数据库文件777权限,dedeadmin是我的数据库文件夹

chmod?-R?0777?/usr/local/mysql/var/dedeadmin/

??????给数据库目录的所属用户和组改为MySQL
????
chown?-R?mysql:mysql?dedeadmin

??????但是这样还不能更改数据库,首先,找到mysqladmin所在位置,一般都在mysql/bin下面,我的在/usr/local/mysql/bin?里面,还需要运行以下命令:

./mysqladmin?-u?root?-p?flush-tables

??????之后输入root账号的密码,马上就好了,没有任何任何提示,然后测试一下,能正常读写,搬家也就顺利完成。