如何将 MySQL 数据目录移动到外部硬盘驱动器?

Sri*_*dam 5 mysql

我尝试将 MySQL 数据目录移动到外部硬盘(已使用 NTFS 格式化)。我按照问题如何更改 MySQL 数据目录答案中给出的步骤操作

  1. 停止 MySQL
  2. 将 MySQL 数据目录复制到新位置
  3. 编辑 MySQL 配置文件(更新 datadir 变量)。
  4. 更新 apparmor 中的新路径
  5. 重新加载apparmor
  6. 启动 MySQL ( /etc/init.d/mysql restart)

但是在第 6 步,当我重新启动 MySQL 时它失败了。当我查看时,/var/log/mysql/error.log我收到以下消息:

2015-05-17 12:07:05 4317 [警告] 无法创建测试文件 /media/prasanth/SeagateExpansionDrive/MWDatabase/mysql/neo.lower-test

/usr/sbin/mysqld:无法将目录更改为“/media/prasanth/SeagateExpansionDrive/MWDatabase/mysql/”(错误代码:13 - 权限被拒绝)

我应该怎么做才能解决这个问题?

我猜是因为mysql用户没有权限写入外置硬盘上的目录。所以我试图改变整个路径的所有权(chown mysql:mysql -R /media/prasanth/SeagateExpansionDrive/MWDatabase/mysql/)。但它没有得到反映。

所以我尝试再次安装该分区sudo mount -t ntfs -o rw,auto,user,fmask=0022,dmask=0000 /dev/sdb1 /media/prasanth/SeagateExpansionDrive/,但没有成功。

设置详细信息:
主机 - Ubuntu 14.04
外置驱动器:NTFS 文件系统,4TB 单分区
MySQL:mysqld Ver 5.6.19-0ubuntu0.14.04.1 for debian-linux-gnu on x86_64

Ric*_*mes 3

新目录必须可由 mysqld 访问。在第 2 步中,您是否复制了所有所有权和权限?

但您可能以没有新目录权限的用户身份启动 mysqld?请注意,它甚至不能执行cd:“无法更改目录”。

检查SELinux是否AppArmor挡道。