外部硬盘驱动器上的 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> select @@datadir;
停止mysql
sudo systemctl stop mysql
将数据从那里复制到您的外部驱动器
sudo rsync -av /var/lib/mysql /mnt/myHDD/somedir/mysql
修改datadir
在my.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 表的主要内容,如果未能解决你的问题,请参考以下文章