MySQL 只读错误,但权限设置和 SELinux AFAICT 正确

MySQL 只读错误,但权限设置和 SELinux AFAICT 正确

我是 MySQL 和 Linux 新手,因为旧 MySQL 版本 (5.1) 存在问题,所以我使用 mysqldump 并安装了 MySQL 5.6。我通过将所有内容复制到新文件夹来更改 datadir 位置,并在默认目录中设置到新文件夹的符号链接。我设置权限为755,用户和组为mysql。使用 ls -aZ 我得到:

drwxr-xr-x. mysql    mysql    unconfined_u:object_r:mysqld_db_t:s0 mysql

确切的错误消息是:

  1. mysql_install_db --user=mysql --datadir=new_dir

    [Note] InnoDB: 5.6.24 started; log sequence number 1600717
    ERROR: 1036  Table 'db' is read only
    [ERROR] Aborting
    
  2. /var/log/mysqld.log我发现:

    [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
    [ERROR] Fatal error: Can't open and lock privilege tables: Table 'user' is read only`
    

但我无法运行,mysql_upgrade因为mysql没有运行。我总是得到:

    MySQL Daemon failed to start.
    Starting mysqld:  [FAILED]

尝试时:service mysqld start

如果您对如何解决此问题有任何建议,请告诉我。他们非常感激!

更新:感谢 apaul 的建议!

  1. 我安装了存储库yum,然后进一步安装了 mysql yum
  2. 我只复制了mysql文件夹以及mysql安装后出现的ibdata1、ib_logfile0、ib_logfile1文件和performance-scheme。因为与我的真实数据数据库相比,我没有转储也没有删除 mysql 文件夹。按照建议这里
  3. 我在执行命令时已经使用了--datadir以及l 。--user=mysqmysql_install_db
  4. mysql 的所有目录都是 755 所以应该是可执行的。但我认为 - 正如我所记得的那样 - 在更改为 5.6 之前只有 700。

我还测试了:重新启动电脑,然后我在 my.cnf 中尝试了 datadir 的真实路径和符号链接的路径。

相关内容