2012-05-18 55 views
2

我在EC2上運行,並且想要在另一個EBS上運行MYSQL的datadir。我將EBS(ext3)掛載到/ data上,並將my.cnf中的datadir改爲指向該目錄。但是,當我嘗試啓動mysql時,出現此錯誤:mysql amazon ec2「無法創建測試文件」錯誤

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 

任何想法?

回答

0

將/ data目錄的所有者更改爲mysqld進程所有者(chown所有者/數據)。或(chmod 777 -R/data)非常不安全。

4

如果您正在運行Ubuntu等發行版,則AppArmor可能會阻止mysqld訪問其他目錄中的文件。如果你檢查你的系統日誌文件,你會發現一個神祕的錯誤信息來達到這個效果。

解決方案包括:

  1. 禁用AppArmor配置(不推薦)

  2. 編輯的AppArmor規則(複雜)

  3. 使用 「安裝捆綁」,以使MySQL認爲你的數據文件在EBS捲上實際結束時處於原始位置。恢復對datadir的更改。

我寫了亞馬遜年的一篇文章後面描述社區的最佳做法,正是你正在嘗試做的,包括用於安裝綁定命令。例如:

Running MySQL on Amazon EC2 with EBS
http://ec2ebs-mysql.notlong.com

注意,AMI ID的文章老了。使用現代的Ubuntu AMI,您需要用mkfs.xfs和/ etc/fstab(而不是ec2工具命令行)中的/ dev/xdh替換/ dev/sdh。

0

如果您正在運行Ubuntu,則可能由於apparmor服務而遇到此錯誤。解決這個問題。要解決它,你需要做到以下幾點:

1)編輯 '/etc/apparmor.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