我是 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
确切的错误消息是:
和
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
在
/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 的建议!
- 我安装了存储库
yum
,然后进一步安装了 mysqlyum
。 - 我只复制了mysql文件夹以及mysql安装后出现的ibdata1、ib_logfile0、ib_logfile1文件和performance-scheme。因为与我的真实数据数据库相比,我没有转储也没有删除 mysql 文件夹。按照建议这里。
- 我在执行命令时已经使用了
--datadir
以及l 。--user=mysq
mysql_install_db
- mysql 的所有目录都是 755 所以应该是可执行的。但我认为 - 正如我所记得的那样 - 在更改为 5.6 之前只有 700。
我还测试了:重新启动电脑,然后我在 my.cnf 中尝试了 datadir 的真实路径和符号链接的路径。