使用符号 link 移动数据库目录后看不到 MySQL 表
Cannot see MySQL tables after moving database dir with symbolic link
我在安装 MySQL 的分区上 运行 超出 space,所以我尝试将我最大的数据库移动到一个新分区并将其符号链接到数据目录中。当我尝试使用此数据库时,出现以下错误
mysql> use fb20;
Database changed
mysql> show tables;
ERROR 1018 (HY000): Can't read dir of './fb20/' (errno: 13)
我检查过符号链接是否已启用:
mysql> show variables like 'have_symlink';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_symlink | YES |
+---------------+-------+
所有权限看起来都是正确的。 MySQL 数据目录是 /data
:
root> ll /data/
drwxr-x--- 243 mysql mysql 8192 Feb 21 08:02 mysql/
root> ll /data/mysql/ | grep fb20
lrwxrwxrwx 1 mysql mysql 19 Feb 21 08:02 fb20 -> /sandata/mysql/fb20/
新目录是/sandata
:
root> ll /sandata/
drwxr-x--- 3 mysql mysql 60 Feb 20 20:32 mysql/
root> ll /sandata/mysql/
total 360
drwxr-x--- 3 mysql mysql 60 Feb 20 20:32 ./
drwxrwxr-x 35 root perma 4096 Feb 20 19:59 ../
drwx------ 2 mysql mysql 303104 Feb 15 12:20 fb20/
不确定我做错了什么。
根据评论,我在文件中添加了以下行 /etc/apparmor.d/usr.sbin.mysqld
/sandata/mysql/ r,
/sandata/mysql/** rwk,
然后重新加载配置文件(重新启动 apparmor 无效):
sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.mysqld
我在安装 MySQL 的分区上 运行 超出 space,所以我尝试将我最大的数据库移动到一个新分区并将其符号链接到数据目录中。当我尝试使用此数据库时,出现以下错误
mysql> use fb20;
Database changed
mysql> show tables;
ERROR 1018 (HY000): Can't read dir of './fb20/' (errno: 13)
我检查过符号链接是否已启用:
mysql> show variables like 'have_symlink';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_symlink | YES |
+---------------+-------+
所有权限看起来都是正确的。 MySQL 数据目录是 /data
:
root> ll /data/
drwxr-x--- 243 mysql mysql 8192 Feb 21 08:02 mysql/
root> ll /data/mysql/ | grep fb20
lrwxrwxrwx 1 mysql mysql 19 Feb 21 08:02 fb20 -> /sandata/mysql/fb20/
新目录是/sandata
:
root> ll /sandata/
drwxr-x--- 3 mysql mysql 60 Feb 20 20:32 mysql/
root> ll /sandata/mysql/
total 360
drwxr-x--- 3 mysql mysql 60 Feb 20 20:32 ./
drwxrwxr-x 35 root perma 4096 Feb 20 19:59 ../
drwx------ 2 mysql mysql 303104 Feb 15 12:20 fb20/
不确定我做错了什么。
根据评论,我在文件中添加了以下行 /etc/apparmor.d/usr.sbin.mysqld
/sandata/mysql/ r,
/sandata/mysql/** rwk,
然后重新加载配置文件(重新启动 apparmor 无效):
sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.mysqld