2012-04-01 82 views
2

我正在运行一个linux服务器,我想知道是否以及如何更改Mysql服务器的内容以保存在外部硬盘上而不是现在存储的位置。更改mysql数据库的位置

回答

4

确切的方法取决于您使用MyISAM还是InnoDB表。

对于MyISAM,每个数据库都是一个包含表格,格式,索引等的目录。所有这些目录通常位于/var/lib/mysql/目录中。要放入不同的卷,可以更改datadir配置选项,或者使/var/lib/mysql/成为该新卷的挂载点。

对于InnoDB,默认是在同一个/var/lib/mysql/目录下使用单个文件;所以在这里增加一个新的音量也会起作用。同样,如果您想将所有卷放在其他位置,可以使用配置变量来更改确切位置。

此外,InnoDB可以使用整个分区或块设备作为数据存储,跳过文件系统。在大多数情况下,假设的速度收益可以忽略不计,因此除非您已经拥有良好的卷管理环境,否则通常不会提示。

最后,如果你已经有了一些你想要移动的数据,最简单的办法就是在关闭mysqld进程之后直接复制整个/var/lib/mysql/目录。

1

除了其他答案,我建议有一个MySQL转储程序(也许mysqldump --all-databases),然后清理你的MySQL服务器并重新加载它。

当然,这比其他技术(直接移动内部MySQL服务器)慢一点,但它具有行使数据库备份和恢复技能的决定性优势。它也使您可以稍微更改数据库配置,如果你想。

我的确希望你有一个定期运行的数据库备份程序。