我刚刚安装了 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 替换为您要设置的权限。