我正在运行一个Linux服务器,我想知道是否以及如何更改Mysql服务器的内容以保存在外部硬盘驱动器上而不是现在存储它的位置。
答案 0 :(得分:4)
确切的方法取决于您使用的是MyISAM还是InnoDB表。
对于MyISAM,每个数据库都是一个包含表格,格式,索引等的目录。所有这些目录通常都在/var/lib/mysql/
目录中。要放入不同的卷,您可以更改datadir
配置选项,也可以将/var/lib/mysql/
设置为该新卷的挂载点。
对于InnoDB,默认情况下使用同一/var/lib/mysql/
目录中的单个文件;所以安装一个新卷也会有用。同样,如果您想将所有卷放在其他位置,可以使用配置变量来更改确切位置。
此外,InnoDB可以使用整个分区或块设备作为数据存储区,跳过文件系统。在大多数情况下,假设的速度增益可以忽略不计,因此除非您已经拥有良好的卷管理环境,否则通常不建议这样做。
最后,如果您已经有一些想要移动的数据,最简单的方法就是在关闭mysqld进程之后以及在指向它之前复制整个/var/lib/mysql/
目录。
答案 1 :(得分:1)
除了其他答案之外,我建议使用MySQL转储程序(可能是mysqldump --all-databases
),然后清除MySQL服务器并重新加载它。
当然,这比其他技术(直接移动内部MySQL服务器)慢一点,但它具有锻炼数据库备份和恢复技能的决定性优势。它还允许您根据需要稍微更改数据库配置。
我希望你有一个定期运行的数据库备份程序。