我正在努力配置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
答案 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)
答案 3 :(得分:0)
看起来我在ln
中找到了一个名为/data/mysql/lib/mysql/
的文件。这个文件符号链接到自身,这显然创建了一个无限循环的符号链接,因此错误'Too many levels of symbolic links'
。
但我不明白为什么MySQL会首先尝试访问这个文件。