我正在对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一开始就要访问这个文件。
发布于 2013-03-17 01:09:52
这里有几个我可以给的提示,1)删除符号链接并提供绝对路径,可能是因为syslink抛出了errors.If它不工作卸载mysql数据库并重新安装它,并确保你提供了连接的volume.One的路径更多的事情你在移动你的所有文件到新卷之前停止mysql服务器了吗??尝试重新启动mysql服务器一次,希望能有所帮助!
发布于 2013-03-17 08:58:31
下面的步骤每次都适用于我。
#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
https://stackoverflow.com/questions/15451718
复制相似问题