我正在运行一个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服务器)要慢一些,但是它具有行使数据库备份和还原技能的决定性优势。 它也使您可以稍微更改数据库配置,如果你想。
我希望你有一个定期运行的数据库备份程序。