Mysql给我:“无法打开和锁定权限表:表'主机'是只读的”

时间:2013-09-10 05:21:39

标签: mysql

我正面临恢复mysql数据库的问题。我的主数据库是mysql5.1,现在我正在尝试将其复制到mysql5.5。使用Xtrabackup支持数据库。

我在这台服务器上使用Ubuntu 12.04.3 LTS,mysql版本是:5.5.32-0ubuntu0.12.04.1-log

我已经按照所有步骤使用Xtrabackup恢复了这个已创建的数据库文件,我已将其复制到tmp目录中。

我已将my.cnf修改为指向此tmp目录。我已经更改了tmp目录权限并将文件的所有权更改为mysql用户。 drwxr-xr-x 12 mysql mysql 4096 Sep 10 10:04 base

现在,当我启动mysql服务器时,我收到此错误“[ERROR]致命错误:无法打开并锁定权限表:表'主机'是只读的”

我尝试了如下:

  1. 甚至尝试安装mysql5.1以查看是否存在问题。
  2. 尝试'chcon mysql_db_t'来改变上下文,但它给了我“不能将部分上下文应用于未标记文件”
  3. 我使用--skip-grant进入数据库,但使用这个我只能访问innodb表,MyIsam表抛出只读错误
  4. 在--skip-grant之后,我使用了upgrade_mysql这会抛出许多表是只读的错误。
  5. 我也删除了apparmor。并重新启动。
  6. 我之前在Ubuntu 12.04.2 LTS上恢复了一个不同的数据库(5.1到5.5),没有任何问题。
  7. 有些人可以指出我正确的方向,我不确定权限有什么问题。

    提前致谢。

1 个答案:

答案 0 :(得分:0)

回答我自己的问题,

问题在于AppArmor。我不确定为什么即使在卸载AppArmor后MySql也无法访问文件。

重新安装AppArmor并将MySql配置文件移动到AppArmor的禁用配置文件下,即使这样也无效。

我复制了/ var / lib / mysql /下的数据库文件,并且MySql停止了抛出错误