1

目前我遇到了一个 mysql 启动问题,无法弄清楚这里发生了什么。如果datadir设置在/var/lib/mysql,并启动mysql:

sudo /etc/init.d/mysql start

启动 MySQL...成功。mysql 可以正常工作。

但是由于设备空间的原因,我需要将datadir更改为另一个分区。它会显示:

[admin@shwzu lib]$ sudo /etc/init.d/mysql start
Starting MySQL. ERROR! The server quit without updating PID file (/var/lib/mysql/datadir/shwzu.pid).

我只是尝试有关它的所有信息,以下是有关设置的详细信息

=> 1.如果文件夹在 /var/lib/mysql 中,一切都很好

drwxrwxrwx 6 mysql mysql 4096 Mar 27 06:03 mysql

=> 2.将目标文件夹更改为另一个名为“test”的分区。并创建“mysql”文件夹。另外,我将所有者和用户更改为 mysql。然后创建一个软链接。(sudo ln -s /test/mysql /var/lib/mysql)

/test 分区的权限:(在 /test 中)

[admin@shwzu /]$ ls -l

drwxrwxrwx   7 root root  4096 Mar 27 06:27 test

/test/mysql 文件夹的权限:

drwxr-xr-x 6 mysql mysql  4096 Mar 27 06:24 mysql

/test/mysql 文件夹内的权限:

drwxr-xr-x 5 mysql mysql 4096 Mar 27 06:24 datadir
drwxr-xr-x 2 mysql mysql 4096 Mar 27 06:24 ibdatadir
drwxr-xr-x 2 mysql mysql 4096 Mar 27 06:24 log
-rwxr-xr-x 1 mysql mysql  158 Mar 27 06:24 RPM_UPGRADE_MARKER
-rw-r----- 1 mysql mysql 2562 Mar 27 06:24 slow_queries.log
drwxr-xr-x 2 mysql mysql 4096 Mar 27 06:24 tmp
-rw-r----- 1 mysql mysql 2031 Mar 27 06:24 shwzu.err

软链接的权限:(在 /var/lib/mysql 中)

  lrwxrwxrwx 1 mysql mysql   12 Mar 26 10:34 mysql -> /test/mysql

执行初始化命令:sudo mysql_install_db. 它工作正常。

  1. 错误信息

[admin@shwzu lib]$ sudo /etc/init.d/mysql start 启动 MySQL。错误!服务器退出但不更新 PID 文件

(/var/lib/mysql/datadir/shwzu.pid)。

/test/mysql/datadir 中的 shwzu.err 文件将显示:

140327 09:56:24 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql/datadir
140327 09:56:24 mysqld_safe mysqld from pid file /var/lib/mysql/datadir/shwzu.pid ended

==>好奇怪!这里没有其他信息,只有两行!!!!!!

  1. 双重检查

    1)没有mysql进程。

    2)没有僵尸进程。

    3)mysql文件夹及其中的文件的所有者和用户设置为“mysql”。

    4)清理datadir中的所有内容。=> 失败并显示相同的消息。

  2. 尝试和错误

    1)将“/var/lib/mysql”文件夹改名为“/var/lib/mysql_”,并创建一个软链接(使用与success文件夹相同的路径中的软链接):

    lrwxrwxrwx 1 mysql mysql 12 Mar 26 10:38 mysql -> mysql_

    [Result]: Failed with the same message.
    

    2)修改/etc/my.cnf到目标文件夹“/test/mysql”而不是使用软链接:

    [Result]: Failed with the same message.
    

    3)将成功文件夹“/var/lib/mysql”复制到“/test/mysql”并创建软链接:

    [Result]: Failed with the same message.
    

我真的不知道这个问题,这让我很困惑,我没有找到任何解决方法。有人可以帮助我吗?

非常感谢!

4

2 回答 2

2

请检查您的服务器配置文件。我在 /etc/my.cnf 中找到了“symbolic-links = 0”,并在该行前面添加了一个“#”:

[mysqld]
# Disabling symbolic-links is recommended to prevent assorted security risks; to do so, uncomment this line:
#symbolic-links = 0
于 2014-05-23T09:54:15.127 回答
2

如果其他人发现此问题,请不要创建 MySQL 数据目录的符号链接,而是更改 my.cnf 中的 datadir 设置本身

让它像:

datadir = /some/other/drive/mysql

实际上,仅更改 my.cnf 中的 datadir 是行不通的。我还必须更改此文件中的数据目录:/etc/apparmor.d/usr.sbin.mysqld

接着:

/etc/init.d/apparmor 重新加载

摘自: 如何更改 MySQL 数据目录?

于 2016-08-23T11:52:57.683 回答