外部硬盘上的MySQL表

问题描述 投票:5回答:4

我需要导入MySQL的大量文本数据。我在MacBook上做这个并没有足够的空间,所以我想将它存储在外部硬盘中(我现在并不关心速度 - 这只是用于测试)。

最好的方法是什么?

  • 在外部硬盘驱动器上安装MySQL(在Mac上可以吗?)
  • 在笔记本电脑的硬盘上安装MySQL并在外部安装表(如何?)
mysql database mysql-management hard-drive
4个回答
4
投票

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

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

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

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


0
投票

对于第二个选项,表空间可能会起作用:

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


0
投票

用户user658991答案就在那里。

添加软链接后,您需要将以下行添加到2行下面的/etc/apparmor.d/usr.sbin.mysqld到旧的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正常启动。


0
投票

打开/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但它警告的所有其他问题与我的树莓PI无关。即我跳过了它们并且有效。

© www.soinside.com 2019 - 2024. All rights reserved.