如果datadir设置为软链接,则无法启动mysql

时间:2014-03-27 10:29:19

标签: mysql symlink my.cnf

目前我遇到了一个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”文件夹。另外,我将所有者ans用户更改为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

执行init命令:sudo mysql_install_db。它工作正常。

  1. 错误消息
  2. [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)Threre没有僵尸进程。

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

      4)清除datadir中的所有内容。 =>使用相同的消息失败。

    2. 尝试和错误

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

      lpwxrwxrwx 1 mysql mysql 12月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.
      
    3. 我真的不知道这个问题,这让我感到困惑,我找不到任何解决方法。 有人可以帮助我吗?

      非常感谢!

2 个答案:

答案 0 :(得分:1)

请检查您的服务器配置文件。我发现" symbolic-links = 0"在我的/etc/my.cnf中添加了一个"#"在那条线前:

[mysqld]
# Disabling symbolic-links is recommended to prevent assorted security risks; to do so, uncomment this line:
#symbolic-links = 0

答案 1 :(得分:-1)

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

使它像:

datadir = /some/other/drive/mysql

实际上,只是更改my.cnf中的datadir不起作用。 我不得不在这个文件中更改数据目录:/etc/apparmor.d/usr.sbin.mysqld

然后:

/etc/init.d/apparmor reload

取自: How to change MySQL data directory?