我正在尝试在另一台服务器上创建一个MySQL数据库的副本。我停止服务器,查找mysql目录,将其复制到其他服务器并解压缩。我将所有权限设置为与正在工作的服务器匹配,并复制my.cnf文件,以便除了服务器特定的更改外,所有内容都是相同的。将MySQL数据库复制到另一台机器
然而,当我尝试启动服务器时,我收到以下错误的InnoDB:
InnoDB: Operating system error number 13 in a file operation.
This error means mysql does not have the access rights to
the directory.
File name /var/lib/mysql/ibdata1
File operation call: 'open'.
所有者/组中的所有文件是mysql的。我甚至尝试将权限更改为+ rw。我可以su到mysql用户并使用head访问ibdata1文件。
SOLUTION:
的问题SELinux的启用和防止新的文件被访问。
为什么不从mysql控制台复制导出它并稍后重新导入?你是否已经做了一个chown -R user.user文件夹来递归地更改文件的所有权?说实话,这更适合于ServerFault上的http://www.serverfault.com – Prix 2010-07-12 15:57:04
True。但是,导出/导入需要很多时间和很多空间以及很多带宽。我不知道OP有什么样的数据,但相信我,有任何大小的数据库,这不是野餐。我的同事实际上是在今天导入数据,并且它是_gzips_(!)到12G。乐趣。 – Amadan 2010-07-12 15:59:02
带宽将以任何方式成为问题......您仍然需要将数据从一侧传输到另一侧,您可以将其导出到您所在的同一台机器上,而只需通过导出的数据gzip将其导出即可如果不是更小。 – Prix 2010-07-12 16:00:57