当使用另一个数据目录时,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
有什么事情成为这个问题的原因?我已经检查过新数据文件夹的权限,但是这不会改变任何内容。
运行以下命令:
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
Mysql will not启动,但在日志中创建套接字,然后我得到一个新的错误'[错误]致命错误:无法打开和锁定权限表:表'用户'是只读' – Vama
您是否分配所有权和权利用户在文件夹/ home/ec2-user/data/mysql上运行mysql? – farbiondriven
我已经设置了这个文件夹的权限:'drwxr-xr-x 5 mysql mysql 4096 Oct 12 15:29 mysql'(与/var/lib/mysql.bak相同) – Vama
你能发表ps ax | grep mysql? – farbiondriven
您好farbiondriven,我得到的唯一的输出是当运行'ps ax | grep mysql'is'25418 pts/0 S + 0:00 grep --color = auto mysql' – Vama
你可以发送ls -la /home/ec2-user/data/mysql/mysql.sock和ls -la/var/lib /mysql.bak/mysql.sock?也许该进程无法访问新文件。 – farbiondriven