数据目录移动后MySQL不会启动。

时间:2012-09-13 12:25:07

标签: mysql innodb datadirectory

我在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} ...路径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.

现在,这个盒子里没有“白杨”用户,我还没有想到为什么要把日志文件放在那里。

1 个答案:

答案 0 :(得分:2)

嗯,事实证明,将 innodb_log_group_home_dir 设置为新的MySQL数据目录(我之前的日志,以及默认情况下应该默认的地方)就可以了。

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

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