mysqld 无法在另一个系统上启动(也无法在旧系统上启动)-没有可用的日志文件

mysqld 无法在另一个系统上启动(也无法在旧系统上启动)-没有可用的日志文件

我刚刚安装了 archlinux x64,之前我用的是 32 位 Debian。由于我买了新磁盘,旧操作系统几乎未作任何修改,仍然存在。

在 Arch 和 Debian 上,我尝试mysqld使用各自的命令启动。在两个系统上,它都挂起,直到最终放弃并报告失败。

几个月前,我将数据库从原始位置移到了另一条路径,因为空间不足。我做了my.cnf相应的调整:

datadir         = /mnt/media/mysql_db

/mnt/media是两个系统完全相同的 LVM 驱动器。因此,我将其安装在新系统上,它抱怨mysql-bin.index缺少某些文件,因此我从中复制了该文件/var/lib/mysql(它假设它是在我第一次mysqld使用未修改的配置运行时创建的)。之后,它抱怨其他mysql-bin.*文件,因此我复制了所有文件。这是我对原始文件夹所做的唯一修改。

尝试重新启动,日志文件/mnt/media/mysql_db/hostname.err甚至不再被触及。我检查了/var/log我能想到的任何其他位置,但没有文件被 mysql 触及。所以现在启动命令失败了,但没有通知我原因。

于是我尝试启动我的旧系统,但现在还是一样。我mysql-bin.*再次删除了这些文件,因为它们本来就不存在,但仍然失败,没有任何输出。

知道如何限制我的搜索或找到解决方案吗?

答案1

我目前无法测试这一点,但这可能是一个权限问题。

确保对其中datadir的所有文件设置了正确的所有权和文件权限。

用户mysql应拥有 ,datadir并且 的权限datadir应为 700(或drwx------)。用户mysql还应拥有 中的子目录和数据库文件datadir。目录的权限应设置为700(或drwx------),数据库文件的权限应设置为660(或-rw-rw----)。所有这些都可以通过 进行确认ls -l

如果任何权限设置不正确(即:如果您以 root 身份复制了文件,那么 root 现在拥有这些文件),请使用chown和进行更正chmod


要将文件/目录的所有权更改为 mysql,请使用以下命令:

chown mysql:mysql /path/to/file

要更改文件/目录的权限,请使用以下命令:

chmod 660 /path/to/file

将 660 替换为您要设置的权限。

相关内容