欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Linux下MySQL出现#1036 – Table ‘ ‘ is read only 错误解决方法

程序员文章站 2022-04-09 19:24:02
...

我遇到的问题是:在navicat mysql中从一台mysql服务器(正式)上传输数据到另外一台服务器(模拟数据库)。是整库传输。将模拟数

  我遇到的问题是:在navicat mysql中从一台mysql服务器(正式)上传输数据到另外一台服务器(模拟数据库)。是整库传输。将模拟数据库中某一个库的数据文件夹重命名之后,重新创建一个新的数据库,再进行数据传输。传输完成之后,发现模拟上新建的数据库的表变为了只读。 通过按照下面文章的类似步骤,解决了问题。  

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

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

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

第一步: chmod -R 0777 /usr/local/mysql/var/admin/

给数据库目录的所属用户和组改为MySQL

1 第二步: chown -R mysql:mysql admin


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

1 第三步: ./mysqladmin -u root -p flush-tables

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

本文永久更新链接地址: