我正在对MySQL进行配置,以便将其数据存储在Amazon EBS卷上。我已经将卷挂载到/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发布于 2013-03-21 01:42:36
看起来像是我在/data/mysql/lib/mysql/中弄错了一个名为ln的文件。该文件被符号链接到自身,这显然创建了符号链接的无限循环,因此出现了错误'Too many levels of symbolic links'。
但是我不明白为什么MySQL一开始就要访问这个文件。
https://stackoverflow.com/questions/15451718
复制相似问题