解决MySql error #1036 Table is read only 错误方法

这次网站搬家采用直接打包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账号的密码,马上就好了,没有任何任何提示,然后测试一下,能正常读写,搬家也就顺利完

-----------

linux中解决办法

1. 找到数据库文件放置的目录,如/usr/local/mysql/var/xx

2. 更改此数据库下所有文件的所有权:chown mysql.mysql *.*

3. 关闭mysql:killall mysqld

4. 开启mysql:进入mysql的bin目录,运行 ./mysqld_safe --user=mysql &

------------

前几天我把一个系统挂到服务器上,数据库出现了如下的错误提示

#1036 - Table ' ' is read only

 我把网站传到服务器上,把备份的数据库文件放到/usr/local/mysql/var下面之后,访问某个表时出现权限的问题,后来把数据库的权限改为777,把数据库目录的所属用户和组改为MySQL,错误依然存在。我采用了一下的方法解决了问题。

首先,找到mysqladmin所在位置,一般都在mysql/bin下面,我的在/usr/local/mysql/bin下面。步骤如下:

#cd   /usr/local/mysql/bin

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

然后输入你的数据库密码,没有任何的错误提示,说明你成功了

如果是linux可如下操作

nux下MySQL出现问题,提示mysql error #1036 - Table 'xxxx' is read only

解决方法:

1. 找到数据库文件放置的目录,如/usr/local/mysql/var/xx

2. 更改此数据库下所有文件的所有权:chown mysql.mysql *.*

3. 关闭mysql:killall mysqld

4. 开启mysql:进入mysql的bin目录,运行 ./mysqld_safe --user=mysql &

时间: 2024-11-08 10:56:33

解决MySql error #1036 Table is read only 错误方法的相关文章

MYSQL ERROR 1146 Table doesnt exist 解析

原创转载请注明出处 源码版本 5.7.14 在MYSQL使用innodb的时候我们有时候会看到如下报错: ERROR 1146 (42S02): Table 'test.test1bak' doesn't exist 首先总结下原因: 缺少frm文件 innodb数据字典不包含这个表 我们重点讨论情况2,因为情况1是显而易见的. ?在使用innodb存储引擎的时候某些时候我们show tables能够看到这个表,但是如果进行任何操作会报错如下: mysql> show tables; | tes

【技术贴】解决Mysql ERROR 1045 (28000): Access denied for

  今天Mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' 肯定是密码不对了.那么重置一下密码吧.   打开 cmd 输入以下四个步骤:   1.mysql -u root mysql (登陆mysql.如果你没有在环境变量path里面加入bin路径,建议你直接去mysql的bin目录下运行此命令) 2. UPDATE user SET Password=PASSWORD('123456') where USER

解决MySQL服务无法启动 系统发生1058错误

现象:mysql 服务无法启动,系统发生1058错误 我的mysql原安装好的,后来把服务禁掉,然后用mysqld-nt standalone启动,现在我想把服务重新启动,却无法启动. 解决方法: ◆1.运行 D:\mysql\bin>mysqld-nt -remove Service successfully removed. D:\mysql\bin>mysqld-nt --install Service successfully installed. D:\mysql\bin>ne

Mysql中大小写敏感问题导致的MySql Error 1146 Tabel doen’t exist错误_Mysql

MySql Error 1146 Tabel doen't exist,一般情况下是表不存在,或者表名写错了.权限问题. 今天遇到了这个问题,仔细核对几遍后,确认无误,又在phpMyAdmin里尝试select,可以查询出数据.又核对权限,确认该mysql用户具有所有权限.那这个错误是怎么回事呢?查询了一些资料后,发现如果mysql引擎不对可能会造成真实存在的表却无法访问,但是发现引擎都是myisam. 这下犯愁了,错误出在哪里呢?又找了半天,仍然无果.无辜的看着这段报错代码,发呆了半天,突然发

解决 mysql ERROR 1017:Can t find file解决错误

在网上查了大多数人都说是权限问题,下面我们讲了二种关于mysql教程 1017错误的解决方法,朋友可以参考一下. ERROR 1017 (HY000): Can't find file:   (errno: 13) 原因是对 mysql的数据库教程文件没有 读写权限 以debian系统为例子,一般数据文件放在 /var/lib/mysql下面 数据库目录的权限是700 (rwx--), 所有者是 mysql 数据库目录下面的文件权限是660(rw-rw-), 所有者也是mysql tags: M

解决mysql ERROR 1017:Can't find file: '/xxx.frm' 错误_Mysql

出现这个问题的原因不是'/xxx.frm'这个文件不见了,而是这些文件的权限(应该要是mysql)不知道为什么变成了root. 解决方法:cd到xxx.frm文件所在目录下,执行一下命令:chown mysql.mysql * 将所有文件的权限都改过来就可以了!

解决MySql Error:Host is blocked because of many connection errors问题

# mysqladmin flush-hosts 现在我们进入mysql编辑my.cnf # vi /etc/my.cnf 然后在里面增加 max_connect_errors=10000 # service mysqld restart 之后重启mysql数据库服务器,如果你没有服务器权限我们可以使用命令模式来设置 # mysql -uroot -p # mysql> SET GLOBAL max_connect_errors=10000; 其实这个方法不是治本的方法我们可以尝试设置mysql

解决MYSQL的unable to load dynamic library错误

1. 问题的描述 今天php的mysql突然不好用了.先后提示下面的错误信息: 没有找到 libmysql.dll 因此这个应用程序未能启动 apache php startup: Unable to load dynamic library : C:/ApacheGroup/php5/ext\php_mysql.dll 进而,在调用mysql函数的时候会出错: Fatal error: Call to undefined function: mysql_connect() 产看了下我的系统,p

解决Fatal error: Unable to read 2147 bytes错误

今天在安装一个网店系统,出现了Fatal error: Unable to read 2147 bytes的错误,如下截图: 经过查找相关的资料,发现原来问题出在上传安装文件的地方.上传文件时,一定要选择"二进制"方式.FTP软件如果不设置为二进制传输,则在某些服务器上可能会导致各种各样的异常的问题,比如:白屏,乱码,异常的报错等等.因此请一定要安装下面的说明设置FTP. 下面整理相关FTP客户端FlashFXP.Filezilla.CuteFTP.LeapFTP等软件的设置方法供您参