在EBS卷上配置MySQL时出错

时间:2013-03-16 16:31:07

标签: mysql ubuntu amazon-web-services amazon-ec2 symlink

我正在努力配置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

4 个答案:

答案 0 :(得分:0)

以下是我可以提供的几个小组, 1)删除符号链接并提供绝对路径,可能是因为syslink它抛出错误。如果它不起作用卸载mysql数据库并重新安装它并确保你提供附加卷的路径。还有一件事做了在将所有文件移动到新卷之前停止mysql服务器?尝试重启mysql服务器一次,希望有所帮助!!!

答案 1 :(得分: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)。 / p>

#/etc/init.d/mysql restart

答案 2 :(得分:0)

每当我看到这样的问题时,我会问“你为什么不使用RDS”?

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

这就像您要使用基于云的服务这样的问题 - 这样您就不必担心管理/配置硬件,数据库等。

答案 3 :(得分:0)

看起来我在ln中找到了一个名为/data/mysql/lib/mysql/的文件。这个文件符号链接到自身,这显然创建了一个无限循环的符号链接,因此错误'Too many levels of symbolic links'

但我不明白为什么MySQL会首先尝试访问这个文件。