解决MySQL error 1036: table is read only

在搬迁论坛的时候遇到mysql错误,经过搜索问题,整理一下解决办法。

1.运行ls -l /var/lib/mysql

结果如下:
total 20544-rw-r--r-- 1 mysql mysql 0 2010-05-02 15:57 debian-5.1.flag
drwxr-xr-x 2 root root 12288 2010-05-04 15:03 drupal
-rw-rw---- 1 mysql mysql 6 2010-05-04 15:04 dublin.pid
-rw-rw---- 1 mysql mysql 125 2010-05-03 12:52 dublin-relay-bin.000001
-rw-rw---- 1 mysql mysql 125 2010-05-04 15:04 dublin-relay-bin.000002
-rw-rw---- 1 mysql mysql 106 2010-05-04 15:04 dublin-relay-bin.000003
-rw-rw---- 1 mysql mysql 78 2010-05-04 15:04 dublin-relay-bin.index
-rw-rw---- 1 mysql mysql 10485760 2010-05-04 15:04 ibdata1
-rw-rw---- 1 mysql mysql 5242880 2010-05-04 15:04 ib_logfile0
-rw-rw---- 1 mysql mysql 5242880 2010-05-02 15:57 ib_logfile1
-rw-rw---- 1 mysql mysql 30 2010-05-04 15:04 master.info
drwxr-xr-x 2 root root 4096 2010-05-04 15:03 mysql
-rw-rw---- 1 mysql mysql 6 2010-05-02 15:57 mysql_upgrade_info
-rw-rw---- 1 mysql mysql 31 2010-05-04 15:04 relay-log.info
drwxr-xr-x 2 root root 16384 2010-05-04 15:03 zc139

如果执行ls -l 输出模式中有"root root",表明root用户拥有这些数据库的权限,同时mysql不能修改它们。这就是导致Read Only 问题的原因。

2.解决问题
改变数据库文件的宿主权限
sudo chown -R mysql:mysql /var/lib/mysql

重启mysql服务
sudo service mysqld restart

taxonomy: