iBBi Asked: 2017-06-17 01:57:33 +0800 CST2017-06-17 01:57:33 +0800 CST 2017-06-17 01:57:33 +0800 CST mysql为特定的数据库分配不同的分区 772 我使用的 mysql 版本 5.5.54-0ubuntu0.12.04.1 (Ubuntu) 几乎没有数据库,其中一个数据库增长非常快,占用了磁盘空间。 我已经安装了辅助磁盘并希望这个特定的数据库只使用这个新添加的磁盘。 有人可以提供一些建议吗?我可以将单个数据库移动到新磁盘还是必须将所有数据库/mysql 移动到新磁盘?如何? mysql ubuntu 3 个回答 Voted Best Answer G3ph4z 2017-06-17T05:10:48+08:002017-06-17T05:10:48+08:00 您应该试试这个: 如何将 MySQL 数据库移动到另一个驱动器? 关闭mysql。 将当前数据目录中的所有文件移动到新位置(检查步骤 3 中的位置 - datadir 参数)。 找到 my.ini 文件(它位于 mysql 安装目录中)。更改 datadir 参数值以指向新位置。 启动mysql。 HamoonDBA 2017-06-18T01:41:05+08:002017-06-18T01:41:05+08:00 我认为你不能用一个命令改变你的数据库目录。 您必须将每个表移动到新的驱动程序: 为此(在 MySQL 5.6 上测试): 确保 innodb_file_per_table 是 ON 为每个表运行 SHOW CREATE TABLE 并保存所有创建命令。 运行每个创建命令并在文件末尾将 _new 添加到表名和 DATA DIRECTORY = 'path' 中,例如: CREATE TABLE t1_new (c1 INT PRIMARY KEY) DATA DIRECTORY = '/alternative/directory'; 为所有表运行 Insert 以将数据移动到 _new 表示例: 插入 t1_new 从 t1 选择 * 将所有表移动到新表后,您可以优雅地删除所有旧表 iBBi 2017-06-18T22:06:40+08:002017-06-18T22:06:40+08:00 谢谢大家的宝贵建议。我无法仅移动单个数据库。我找到了移动所有数据库的解决方案 :( 不管我是怎么做的。仍在搜索移动单个数据库解决方案,,, 这就是我设法将 mysql 数据库移动到新驱动器的方法。 - 停止 mysql 服务 ** - 使用 rsync 将 /var/lib/mysql 文件夹复制到新驱动器以保留权限。** - 编辑 mysql inf 文件并为数据目录指向新文件夹 ** - 在 apparmour start mysql 中为新文件夹添加条目, 全部完成。记录在这里。
您应该试试这个: 如何将 MySQL 数据库移动到另一个驱动器?
我认为你不能用一个命令改变你的数据库目录。
您必须将每个表移动到新的驱动程序:
为此(在 MySQL 5.6 上测试):
运行每个创建命令并在文件末尾将 _new 添加到表名和 DATA DIRECTORY = 'path' 中,例如:
CREATE TABLE t1_new (c1 INT PRIMARY KEY) DATA DIRECTORY = '/alternative/directory';
为所有表运行 Insert 以将数据移动到 _new 表示例:
插入 t1_new 从 t1 选择 *
将所有表移动到新表后,您可以优雅地删除所有旧表
谢谢大家的宝贵建议。我无法仅移动单个数据库。我找到了移动所有数据库的解决方案 :( 不管我是怎么做的。仍在搜索移动单个数据库解决方案,,,
这就是我设法将 mysql 数据库移动到新驱动器的方法。
- 停止 mysql 服务 ** - 使用 rsync 将 /var/lib/mysql 文件夹复制到新驱动器以保留权限。** - 编辑 mysql inf 文件并为数据目录指向新文件夹 ** - 在 apparmour start mysql 中为新文件夹添加条目,
全部完成。记录在这里。