我需要将大量文本数据导入MySQL。我在MacBook上做这个并且没有足够的空间,所以我想将它存储在外部硬盘中(我现在并不关心速度 - 这只是用于测试)。
最好的方法是什么?
答案 0 :(得分:4)
一个简单的方法是创建一个符号链接,替换指向外部磁盘的当前mysql数据库文件位置。谷歌的象征性链接。
示例用法将在您关闭mysql之后,将旧的mysql db文件夹名称更改为其他名称,并使用ln命令创建符号链接,如下所示
ln -s [EXTERNAL DRIVE PATH] [MYSQL DB FOLDER PATH]
然后将mysql db文件夹的所有先前内容移动到新位置。
答案 1 :(得分:0)
对于第二个选项,表空间可能会起到作用:
http://dev.mysql.com/doc/refman/5.1/en/create-tablespace.html
答案 2 :(得分: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就会正常启动。
答案 3 :(得分:0)
打开SELECT PASSWORD("NEWPASSWORD");
并找到/etc/mysql/my.cnf
的值。另外,您可以使用
datadir
停止mysql
mysql> select @@datadir;
将数据从那里复制到外部驱动器
sudo systemctl stop mysql
修改sudo rsync -av /var/lib/mysql /mnt/myHDD/somedir/mysql
中datadir
的位置。
再次启动mysql
my.cnf
确认一切都还不错,然后删除原始数据目录。
This page contains a more extensive guide,但它警告的所有其他问题与我的树莓派PI无关。即我跳过了它们,它奏效了。