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

a14dhokn  于 5个月前  发布在  Mysql
关注(0)|答案(3)|浏览(60)

目前我遇到了一个mysql启动问题,不知道这里发生了什么。如果在/var/lib/mysql中设置datadir,并启动mysql:

sudo /etc/init.d/mysql start

字符串
启动MySQL. SUCCESS..
但由于设备空间的原因,我需要将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

软链接权限:(in /var/lib/mysql)

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


执行init命令: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. =>中的所有内容失败,并显示相同的消息。
1.Try and Error
1)将文件夹名称“/var/lib/mysql”改为“/var/lib/mysql_",并创建一个软链接(使用与成功文件夹相同路径的软链接):
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.


我真的不知道这个问题,它的困惑我,我没有找到任何变通的解决方案。是谁可以帮助我吗?
非常非常感谢!

qzwqbdag

qzwqbdag1#

请检查您的服务器配置文件。我在我的/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

字符串

ktecyv1j

ktecyv1j2#

如果其他人发现了这个问题,请在my.cnf中更改datadir设置本身,而不是创建MySQL数据目录的符号链接
让它像:

datadir = /some/other/drive/mysql

字符串
实际上,仅仅更改我的.cnf中的datadir并不起作用,我还必须更改这个文件中的datadir:/etc/apparmor.d/usr.sbin.mysqld
然后:
/etc/init.d/apparmor reload
来源:How to change MySQL data directory?

vq8itlhq

vq8itlhq3#

幽灵是罪魁祸首!
如果你已经将mysql迁移到/data/mysql
编辑/etc/apparmor.d/tunables/alias甚至有一个mysql sample行,只是取消注解它.

# Or if mysql databases are stored in /home:  
alias /var/lib/mysql/ -> /data/mysql/,

字符串
再启动装置

service apparmor restart


重新启动mysqld

service mysql start

相关问题