0

私は、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
4

4 に答える 4

0

このような質問をするたびに、「RDSを使ってみませんか?」と尋ねます。

http://aws.amazon.com/rds/

クラウドベースのサービスを使用したいのは、このような問題とまったく同じです。そのため、ハードウェアやデータベースなどの管理/構成について何も心配する必要はありません。

于 2013-03-18T06:49:47.957 に答える
0

以下の手順は毎回うまくいきます。

#mkfs.ext4 /dev/xvdf

#mkdir /mnt/data

#mount /dev/xvdf /mnt/data

#/etc/init.d/mysql stop

ファイルを編集/etc/mysql/my.cnfして「datadir」のエントリを探し、パス(「/ var / lib / mysql」である必要があります)を新しいデータディレクトリ(/ mnt / data)に変更します。

#/etc/init.d/mysql restart

于 2013-03-17T00:58:30.703 に答える
0

lnで名前が付けられたファイルを太く指で触れたようです/data/mysql/lib/mysql/。このファイルはそれ自体にシンボリックリンクされていたため、シンボリックリンクの無限ループが作成されたため、エラーが発生しまし'Too many levels of symbolic links'た。

しかし、MySQLがそもそもこのファイルにアクセスしようとする理由がわかりません。

于 2013-03-20T17:42:35.893 に答える
0

ここに私が与えることができるいくつかの注意点があります、1)シンボリックリンクを削除し、絶対パスを提供します、これはsyslinkのスローアウトエラーが原因である可能性があります。それが機能しない場合は、mysql dbをアンインストールして再インストールし、接続されたボリュームのパス。すべてのファイルを新しいボリュームに移動する前に、もう1つmysqlサーバーを停止しましたか?mysqlサーバーを一度再起動してみてください。お役に立てば幸いです。

于 2013-03-16T17:09:51.790 に答える