私は、AmazonEBSボリュームにデータを保存するようにMySQLを構成する作業を行っています。でボリュームをマウントし、構成/data
ファイルとデータファイルをボリュームに移動し、MySQLファイルをシンボリックリンクしました。
ln -s /data/mysql/lib/mysql /var/lib/mysql
ln -s /data/mysql/etc/mysql/my.cnf /etc/mysql/my.cnf
ln -s /data/mysql/log/mysqld.log /var/log/mysqld.log
データベースサーバーは実行されますが、数時間後に次のエラーでクラッシュします。
130316 9:59:04 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
130316 9:59:04 InnoDB: Operating system error number 40 in a file operation.
InnoDB: Error number 40 means 'Too many levels of symbolic links'.
InnoDB: Some operating system error numbers are described at
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/operating-system-error-codes.html
InnoDB: File name ./ln
InnoDB: File operation call: 'stat'.
InnoDB: Error: os_file_readdir_next_file() returned -1 in
InnoDB: directory .
InnoDB: Crash recovery may have failed for some .ibd files!
誰かがこのエラーとそれを修正する方法を理解していますか?私はもっと調べようとしましたが、ドキュメントはあまりありません。Ubuntu AMI(マイクロ)を実行しています。
ボリューム(8 GB)をフォーマットしてマウントした方法は次のとおりです。
sudo mkfs.ext4 /dev/xvdf
mkdir -m 000 /data
echo "/dev/xvdf /data auto noatime 0 0" | sudo tee -a /etc/fstab
sudo mount /data