改变mysql数据库的位置

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

确切的方法取决于你是否使用MyISAM或InnoDB表。

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

对于InnoDB,默认是使用同一个文件/var/lib/mysql/目录; 所以在这里安装一个新的音量也会起作用。 同样,如果你想把所有的卷都放在别的地方,配置变量可以用来改变确切的位置。

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

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

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

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

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