无法为 mysql 设置不同的数据库目录(错误代码:13 - 权限被拒绝)

无法为 mysql 设置不同的数据库目录(错误代码:13 - 权限被拒绝)

我正在尝试将我的 mysql 安装的数据库目录重新定位到新安装的 ssd。

配置:

Ubuntu 16.04 mysql Ver 14.14 Distrib 5.7.12, for Linux (x86_64) using EditLine wrapper

我进行了修改/etc/mysql/my.cnf以包含一个新的数据库目录:

datadir = /mnt/5abeaa6e-7536-4213-bb3e-97aa9a81be16/mysql

现在运行时sudo service mysql start会出现权限错误:

mysqld[9002]: mysqld: Can't change dir to '/mnt/5abeaa6e-7536-4213-bb3e-97aa9a81be16/mysql/' (Errcode: 13 - Permission denied)

我已经在新目录上运行了递归 chmod 和 chown 命令以匹配它,并且统计读数现在显示如下:

$ stat /var/lib/mysql
  File: '/var/lib/mysql'
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 812h/2066d  Inode: 13381090    Links: 8
Access: (0700/drwx------)  Uid: (  127/   mysql)   Gid: (  134/   mysql)
Access: 2016-06-23 09:42:37.687378790 -0700
Modify: 2016-06-23 09:46:04.679025933 -0700
Change: 2016-06-23 09:46:04.679025933 -0700
 Birth: -

$ stat /mnt/5abeaa6e-7536-4213-bb3e-97aa9a81be16/mysql
  File: '/mnt/5abeaa6e-7536-4213-bb3e-97aa9a81be16/mysql'
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 820h/2080d  Inode: 3276801     Links: 3
Access: (0700/drwx------)  Uid: (  127/   mysql)   Gid: (  134/   mysql)
Access: 2016-06-23 09:45:16.190998487 -0700
Modify: 2016-06-22 18:37:37.707197266 -0700
Change: 2016-06-23 09:45:16.190998487 -0700
 Birth: -

我也修改/etc/apparmor.d/usr.sbin.mysqld

# Allow data dir access
#  /var/lib/mysql/ r,
#  /var/lib/mysql/** rwk,
/mnt/5abeaa6e-7536-4213-bb3e-97aa9a81be16/mysql/ r,
/mnt/5abeaa6e-7536-4213-bb3e-97aa9a81be16/mysql/** rwk,

任何想法,将不胜感激。

答案1

根据本网站,您需要编辑一些配置并运行一些命令来完成设置。

添加以下内容/etc/apparmor.d/usr.sbin.mysqld

/NEWSQLPATH/ r,
/NEWSQLPATH/** rwk,

然后运行:

sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.mysqld
sudo /etc/init.d/apparmor reload

您还可以将其添加到/etc/apparmor.d/tunables/alias

alias /var/lib/mysql/ -> /newpath/,

行尾的逗号很重要。

相关内容