首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql amazon ec2“无法创建测试文件”错误

mysql amazon ec2“无法创建测试文件”错误
EN

Stack Overflow用户
提问于 2012-05-18 16:18:25
回答 3查看 2.9K关注 0票数 2

我在EC2上运行,我想把MYSQL的数据目录放在另一个EBS上。我将EBS (ext3)挂载到/data上,并将my.cnf中的数据目录更改为指向该目录。但是,当我尝试启动mysql时,我收到以下错误:

代码语言:javascript
复制
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

有什么想法吗?

EN

回答 3

Stack Overflow用户

发布于 2012-05-19 08:21:08

如果你在像Ubuntu这样的发行版上运行,那么AppArmor可能会阻止mysqld访问不同目录中的文件。如果你检查你的系统日志文件,你会发现一条隐含的错误信息。

解决方案包括:

禁用挂载绑定(not recommended)

  • Edit AppArmor AppArmor rules (complicated)

  • Use "mount bind“),使MySQL认为您的数据文件在原始位置,而它们实际上在EBS卷上。将更改还原到数据目录。

几年前,我为亚马逊写了一篇文章,描述了你正在尝试做的社区最佳实践,包括mount bind示例的命令:

在带EBS的亚马逊EC2上运行MySQL的

http://ec2ebs-mysql.notlong.com

请注意,本文中的AMI id是旧的。使用现代的Ubuntu AMI,您需要在mkfs.xfs和/etc/fstab中(但不是在ec2工具命令行中)将/dev/sdh替换为/dev/xvdh。

票数 5
EN

Stack Overflow用户

发布于 2013-11-27 08:17:17

如果你运行的是Ubuntu,你可能会因为apparmor服务而遇到这个错误。来解决这个问题。要解决此问题,您需要执行以下操作:

1)编辑‘/etc/parapmor.d/usr.sbin.mysqld’并添加以下行:

代码语言:javascript
复制
/opt/lib/mysql/ r,

/opt/lib/mysql/** rwk,

( assuming your new data directory is in /opt/lib/mysql )

2)重启apparmor服务:

代码语言:javascript
复制
sudo service apparmor restart
票数 1
EN

Stack Overflow用户

发布于 2012-05-18 17:07:03

将/data目录的所有者更改为mysqld进程所有者(chown owner /data )。或者(chmod 777 -R /data)非常不安全。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10649132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档