我在EC2上运行,我想把MYSQL的数据目录放在另一个EBS上。我将EBS (ext3)挂载到/data上,并将my.cnf中的数据目录更改为指向该目录。但是,当我尝试启动mysql时,我收到以下错误:
120518 03:53:17 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
120518 03:53:28 mysqld_safe Starting mysqld daemon with databases from /data/mysql/
120518 3:53:28 [Warning] Can't create test file /data/mysql/ip-10-136-23-225.lower-test
120518 3:53:28 [Warning] Can't create test file /data/mysql/ip-10-136-23-225.lower-test
/usr/libexec/mysqld: Can't change dir to '/data/mysql/' (Errcode: 13)
120518 3:53:28 [ERROR] Aborting
120518 3:53:28 [Note] /usr/libexec/mysqld: Shutdown complete
120518 03:53:28 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended有什么想法吗?
发布于 2012-05-19 08:21:08
如果你在像Ubuntu这样的发行版上运行,那么AppArmor可能会阻止mysqld访问不同目录中的文件。如果你检查你的系统日志文件,你会发现一条隐含的错误信息。
解决方案包括:
禁用挂载绑定(not recommended)
几年前,我为亚马逊写了一篇文章,描述了你正在尝试做的社区最佳实践,包括mount bind示例的命令:
在带EBS的亚马逊EC2上运行MySQL的
http://ec2ebs-mysql.notlong.com
请注意,本文中的AMI id是旧的。使用现代的Ubuntu AMI,您需要在mkfs.xfs和/etc/fstab中(但不是在ec2工具命令行中)将/dev/sdh替换为/dev/xvdh。
发布于 2013-11-27 08:17:17
如果你运行的是Ubuntu,你可能会因为apparmor服务而遇到这个错误。来解决这个问题。要解决此问题,您需要执行以下操作:
1)编辑‘/etc/parapmor.d/usr.sbin.mysqld’并添加以下行:
/opt/lib/mysql/ r,
/opt/lib/mysql/** rwk,
( assuming your new data directory is in /opt/lib/mysql )2)重启apparmor服务:
sudo service apparmor restart发布于 2012-05-18 17:07:03
将/data目录的所有者更改为mysqld进程所有者(chown owner /data )。或者(chmod 777 -R /data)非常不安全。
https://stackoverflow.com/questions/10649132
复制相似问题