当使用另一个数据目录时,Mysql服务器将无法工作

问题描述:

我在亚马逊Linux AMI上运行亚马逊ec2实例。我试图移动数据目录为MySQL第二卷(安装在/home/ec2-user/data)与下面的配置文件(/etc/my.cnf)上,但MySQL的无法启动:当使用另一个数据目录时,Mysql服务器将无法工作

[mysqld] 
datadir=/home/ec2-user/data/mysql 
socket=/home/ec2-user/data/mysql/mysql.sock 
log-bin=/var/log/mysql/mariadb-bin 
log-bin-index=/var/log/mysql/mariadb-bin.index 
symbolic-links=0 

[mysqld_safe] 
log-error=/var/log/mysqld.log 
pid-file=/var/run/mysqld/mysqld.pid 

[client] 
port=3306 
socket=/home/ec2-user/data/mysql/mysql.sock 

我得到的日志文件这些错误信息:

2017-10-12 14:06:33 20082 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it. 
2017-10-12 14:06:33 20082 [ERROR] Can't start server : Bind on unix socket: Permission denied 
2017-10-12 14:06:33 20082 [ERROR] Do you already have another mysqld server running on socket: /home/ec2-user/data/mysql/mysql.sock ? 
2017-10-12 14:06:33 20082 [ERROR] Aborting 

当我设置的配置文件恢复到以前的设置(对于数据文件夹的备份),一切工作正常:

[mysqld] 
datadir=/var/lib/mysql.bak 
socket=/var/lib/mysql.bak/mysql.sock 

log-bin=/var/log/mysql/mariadb-bin 
log-bin-index=/var/log/mysql/mariadb-bin.index 
symbolic-links=0 

[mysqld_safe] 
log-error=/var/log/mysqld.log 
pid-file=/var/run/mysqld/mysqld.pid 

[client] 
port=3306 
socket=/var/lib/mysql.bak/mysql.sock 

有什么事情成为这个问题的原因?我已经检查过新数据文件夹的权限,但是这不会改变任何内容。

+0

你能发表ps ax | grep mysql? – farbiondriven

+0

您好farbiondriven,我得到的唯一的输出是当运行'ps ax | grep mysql'is'25418 pts/0 S + 0:00 grep --color = auto mysql' – Vama

+0

你可以发送ls -la /home/ec2-user/data/mysql/mysql.sock和ls -la/var/lib /mysql.bak/mysql.sock?也许该进程无法访问新文件。 – farbiondriven

运行以下命令:

chgrp -R mysql /home/ec2-user/data/mysql 
chown -R mysql /home/ec2-user/data/mysql 

你可以试试下面的配置文件?

[mysqld] 
datadir=/home/ec2-user/data/mysql 
socket=/var/lib/mysql.bak/mysql.sock 

log-bin=/var/log/mysql/mariadb-bin 
log-bin-index=/var/log/mysql/mariadb-bin.index 
symbolic-links=0 

[mysqld_safe] 
log-error=/var/log/mysqld.log 
pid-file=/var/run/mysqld/mysqld.pid 

[client] 
port=3306 
socket=/var/lib/mysql.bak/mysql.sock 
+0

Mysql will not启动,但在日志中创建套接字,然后我得到一个新的错误'[错误]致命错误:无法打开和锁定权限表:表'用户'是只读' – Vama

+0

您是否分配所有权和权利用户在文件夹/ home/ec2-user/data/mysql上运行mysql? – farbiondriven

+0

我已经设置了这个文件夹的权限:'drwxr-xr-x 5 mysql mysql 4096 Oct 12 15:29 mysql'(与/var/lib/mysql.bak相同) – Vama