0

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

4 回答 4

0

这是我可以给出的几个提示,1)删除符号链接并提供绝对路径,可能是因为系统链接抛出错误。如果它不起作用,请卸载 mysql db 并重新安装并确保您提供附加卷的路径。在将所有文件移动到新卷之前,您是否停止了 mysql 服务器?尝试重新启动一次mysql服务器,希望对您有帮助!!!

于 2013-03-16T17:09:51.790 回答
0

每次看到这样的问题,我都会问“为什么不用RDS”?

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

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

于 2013-03-18T06:49:47.957 回答
0

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

但我不明白为什么 MySQL 一开始会尝试访问这个文件。

于 2013-03-20T17:42:35.893 回答
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 回答