【发布时间】:2012-04-15 05:32:51
【问题描述】:
我正在运行一个 linux 服务器,我想知道是否以及如何更改 Mysql 服务器的内容以保存在外部硬盘上,而不是现在存储的地方。
【问题讨论】:
标签: mysql database linux debian
我正在运行一个 linux 服务器,我想知道是否以及如何更改 Mysql 服务器的内容以保存在外部硬盘上,而不是现在存储的地方。
【问题讨论】:
标签: mysql database linux debian
具体方法取决于您使用的是 MyISAM 还是 InnoDB 表。
对于 MyISAM,每个数据库都是一个目录,里面有表、格式、索引等。所有这些目录通常都在/var/lib/mysql/ 目录中。要放入不同的卷,您可以更改 datadir 配置选项,或者将 /var/lib/mysql/ 设置为该新卷的挂载点。
对于 InnoDB,默认使用同一 /var/lib/mysql/ 目录中的单个文件;所以在那里安装一个新卷也可以。同样,如果您想将所有卷放在其他位置,可以使用配置变量来更改确切位置。
此外,InnoDB 可以使用整个分区或块设备作为数据存储,跳过文件系统。在大多数情况下,假定的速度提升可以忽略不计,因此通常不建议您这样做,除非您已经拥有良好的卷管理环境。
最后,如果您已经有一些要移动的数据,最简单的方法是在关闭 mysqld 进程之后并将其定向到那里之前简单地复制整个 /var/lib/mysql/ 目录。
【讨论】:
除了其他答案,我建议有一个 MySQL 转储程序(可能是mysqldump --all-databases),然后清除您的 MySQL 服务器并重新加载它。
当然,这比其他技术(直接移动内部 MySQL 服务器)要慢一些,但它具有锻炼数据库备份和恢复技能的决定性优势。如果您愿意,它还可以让您稍微更改数据库配置。
我确实希望您有一个定期运行的数据库备份过程。
【讨论】: