外部硬盘上的MySQL表

外部硬盘上的MySQL表,mysql,database,mysql-management,hard-drive,Mysql,Database,Mysql Management,Hard Drive,我有大量的文本数据需要导入MySQL。我在MacBook上做这件事,没有足够的空间放它,所以我想把它存储在一个外部硬盘上(我现在并不关心速度,这只是为了测试) 最好的方法是什么 在外部硬盘上安装MySQL(在Mac上可以吗?) 在笔记本电脑的硬盘上安装MySQL,并将表放在外部(如何?) 对于第二个选项,表空间可能会起到以下作用: 一个简单的方法是创建一个符号链接,替换指向外部磁盘的当前mysql数据库文件位置。谷歌符号链接 示例用法是在关闭mysql之后,将旧的mysql db文件夹名称更改

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

最好的方法是什么

  • 在外部硬盘上安装MySQL(在Mac上可以吗?)
  • 在笔记本电脑的硬盘上安装MySQL,并将表放在外部(如何?)

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


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

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

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

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

用户user658991答案就在中间

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

/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就会正常启动。

打开
/etc/MySQL/my.cnf
并找到
datadir
的值。或者,您可以在mysql监视器中使用

mysql>   select @@datadir;
停止mysql

sudo systemctl stop mysql
将数据从那里复制到外部驱动器

sudo rsync -av /var/lib/mysql /mnt/myHDD/somedir/mysql
my.cnf
中修改
datadir
的位置
重新启动mysql

sudo systemctl start mysql
确认一切正常并删除原始数据目录


但它警告的所有其他问题与我的覆盆子圆周率无关。也就是说,我跳过了它们,它成功了。

这是程序的一半。您需要将以下行添加到“/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:无法将dir更改为“/external/drive/path/”(错误代码:13)121210 8:36:18[错误]中止在HD上维护所有数据库并在和外部HD上添加一个新数据库时,是否可以执行此操作?@arenelupin是,您的所有数据库都将得到维护。对于MySQL版本5.5.60-0+deb8u1的我来说,这不是必需的。