3

我在 Ubuntu 10.04 上运行 MySQL 5.1,直到最近,我使用默认数据目录位置。配置文件的其他一些部分针对性能进行了调整,但路径保持默认。

最近,我开始空间不足,决定添加另一个硬盘,将其挂载为 /mysql 并仅用于 MySQL 数据。因此,我更改了路径,将旧数据目录复制到新数据目录中,并认为这将结束。

不幸的是,事实并非如此——后来发现 apparmor 是问题所在,尽管我在 apparmor 中更新了 MySQL 配置文件以反映新路径。经过一些混乱,禁用apparmor,服务器可以工作,我能够导入大数据库,这是我需要更多空间的最初原因。

现在,那是昨天 - 导入了整个 200GB 的数据库,对密钥进行了排序,一切似乎都很好,直到我今天尝试启动服务器。这是我在日志中看到的错误:

120913 13:53:38  InnoDB: Operating system error number 2 in a file operation.
InnoDB: The error means the system cannot find the path specified.
InnoDB: If you are installing InnoDB, remember that you must create
InnoDB: directories yourself, InnoDB does not create them.
InnoDB: File name /home/{my_username}/mysql/data/ibdata1
InnoDB: File operation call: 'create'.
InnoDB: Cannot continue operation.

这里有一些奇怪的事情:

a) 我以 root 身份使用 sudo-ed,并且我正在使用“service mysql start”命令来启动它 b) 在任何配置中都没有提到 /home/{my_username}... path ANYWHERE。

我找不到有关此类问题的任何信息或错误报告。我什至不知道我会搜索什么,因为这个问题不能用不到 2 段来解释。

更多信息:手动设置innodb_data_home_dir消除了早期的问题,但是,现在我得到了这个:

120913 14:08:06  InnoDB: Operating system error number 2 in a file operation.
InnoDB: The error means the system cannot find the path specified.
InnoDB: If you are installing InnoDB, remember that you must create
InnoDB: directories yourself, InnoDB does not create them.
InnoDB: File name /home/poplar/mysql/innodb-logs/ib_logfile0
InnoDB: File operation call: 'create'.
InnoDB: Cannot continue operation.

现在,这个盒子上没有“白杨”用户,我一点也不知道为什么它要尝试将日志文件放在那里。

4

1 回答 1

2

好吧,事实证明,将innodb_log_group_home_dir设置为新的 MySQL 数据目录(我的日志之前所在的位置,无论如何它应该默认设置的位置)起到了作用。

服务器现在正常启动,所有数据似乎都在那里。

我仍然不知道它从哪里获得“poplar”用户名作为尝试放置日志文件的好主意,但它可能是 AppArmor 的一些剩余(错误)配置,当我卸载它时没有完全重新设置。

于 2012-09-13T12:33:03.790 回答