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