外部硬盘驱动器上的 MySQL 表

Posted

技术标签:

【中文标题】外部硬盘驱动器上的 MySQL 表【英文标题】:MySQL tables on external hard drive 【发布时间】:2011-09-03 06:56:54 【问题描述】:

我有大量文本数据需要导入 mysql。我在 MacBook 上执行此操作,但没有足够的空间放置它,所以我想将它存储在外部硬盘驱动器中(此时我并不真正关心速度 - 这只是为了测试)。

最好的方法是什么?

在外部硬盘驱动器上安装 MySQL(这在 Mac 上可行吗?) 在笔记本电脑的硬盘上安装 MySQL 并将表放在外部(如何?)

【问题讨论】:

【参考方案1】:

一个简单的技巧是创建一个符号链接,替换指向外部磁盘的当前 mysql 数据库文件位置。谷歌符号链接。

示例用法是在您关闭 mysql 后,将旧的 mysql db 文件夹名称更改为其他名称,然后使用 ln 命令创建符号链接,如下所示

ln -s [EXTERNAL DRIVE PATH] [MYSQL DB FOLDER PATH]

然后将mysql db文件夹之前的所有内容移动到新位置。

【讨论】:

这已经完成了一半。您需要将以下行添加到“/etc/apparmor.d/usr.sbin.mysqld”\n /external/drive/path/r, /external/drive/path/** rwk,\n 否则你会得到:\n 121210 8:36:18 [警告] 无法创建测试文件 /external/drive/path/hostname.lower-test 121210 8:36:18 [警告] 无法创建测试文件 /external/drive/ path/hostname.lower-test mysqld: Can't change dir to '/external/drive/path/' (Errcode: 13) 121210 8:36:18 [ERROR] Aborting【参考方案2】:

打开/etc/mysql/my.cnf 并找到datadir 的值。或者,您可以使用

在 mysql 监视器中找到它
mysql>   select @@datadir;

停止mysql

sudo systemctl stop mysql

将数据从那里复制到您的外部驱动器

sudo rsync -av /var/lib/mysql /mnt/myHDD/somedir/mysql

修改datadirmy.cnf中的位置。 再次启动mysql

sudo systemctl start mysql

验证一切是否仍然正常并删除原始数据目录。

This page contains a more extensive guide 但它警告的所有其他问题都与我的树莓派无关。 IE。我跳过了它们,它起作用了。

【讨论】:

【参考方案3】:

对于第二个选项,表空间可以解决问题:

http://dev.mysql.com/doc/refman/5.1/en/create-tablespace.html

【讨论】:

【参考方案4】:

用户 user658991 的答案已经完成了一半。

添加软链接后,您需要将以下行添加到/etc/apparmor.d/usr.sbin.mysqld 的2 行下面的旧mysql 文件夹中。

/path/to/mysql/folder/on/the/external/ r
/path/to/mysql/folder/on/the/external/ ** rwk

没有这两行,MySQL 无法开始抱怨:

Can't create test file /path/to/mysql/folder/on/the/external/hostname.lower-test
Can't create test file /path/to/mysql/folder/on/the/external/hostname.lower-test
mysqld: Can't change dir to '/path/to/mysql/folder/on/the/external/' (Errcode: 13)

重新启动 apparmor 以使更改生效。

sudo invoke-rc.d apparmor restart

这样,MySQL就可以正常启动了。

【讨论】:

是否可以在维护 HD 上的所有数据库并在外部 HD 上添加新数据库的同时完成此操作? @aresnelupin 是的,您的所有数据库都将得到维护。 MySQL 版本 5.5.60-0+deb8u1 对我来说不是必需的。

以上是关于外部硬盘驱动器上的 MySQL 表的主要内容,如果未能解决你的问题,请参考以下文章

使用 osx 终端从外部硬盘驱动器中提取具有特定名称的子文件夹。

将数百万份文档传输到外部硬盘驱动器

硬盘驱动器和 Android Studio

如何擦除硬盘驱动器

使用外部硬盘驱动器,heroku 2.4.0 命令不起作用

如何将 MySQL 数据库从一个硬盘驱动器移动到另一个硬盘驱动器?