SEa*_*986 6 mysql apparmor 17.04
我正在尝试将单个 MySql 数据库移动到我的 Ubuntu 机器中的另一个物理磁盘。我正在使用 Ubuntu 17.04。
外部驱动器安装在 /etc/fstab 中,如下(最后一行):
#zoneminder external drive
/path/to/new/location/zoneminder/images /var/cache/zoneminder/images none defaults,bind 0 2
/path/to/new/location/zoneminder/events /var/cache/zoneminder/events none defaults,bind 0
/dev/disk/by-uuid/a98ab607-15eb-4089-9197-7d26c3576cf9 /path/to/new/location ext4 x-gvfs-show 0 0
Run Code Online (Sandbox Code Playgroud)
我尝试了以下步骤:
停止mysql服务:
sudo service mysql stop
Run Code Online (Sandbox Code Playgroud)
更改已安装驱动器的所有者(我需要更新 fstab 条目以合并这一点,但一次一个问题!):
chown mysql:mysql /path/to/new/location
Run Code Online (Sandbox Code Playgroud)
移动到mysql文件夹
cd /var/lib/mysql
Run Code Online (Sandbox Code Playgroud)
将数据库(称为 zm)复制到新位置
sudo rsync -av zm /path/to/new/location/zm
Run Code Online (Sandbox Code Playgroud)
重命名旧数据库
sudo mv zm zm.old
Run Code Online (Sandbox Code Playgroud)
创建到我们 rsync 的数据库的符号链接
sudo ln -s /path/to/new/location/zm
Run Code Online (Sandbox Code Playgroud)
移动到新的数据库位置
cd /path/to/new/location
Run Code Online (Sandbox Code Playgroud)
在这一点上做 ll 告诉我 mysql 是 /path/to/new/location/zm 的所有者
设置文件权限
sudo chmod 700 zm
cd zm
sudo chmod 660 *
Run Code Online (Sandbox Code Playgroud)
将新位置添加到 apparmor
sudo nano /etc/apparmor.d/usr.sbin.mysqld
Run Code Online (Sandbox Code Playgroud)
添加
/path/to/new/location/ r,
/path/to/new/location/** rwk,
Run Code Online (Sandbox Code Playgroud)
(重新)启动服务
sudo service apparmor restart
sudo service mysql start
Run Code Online (Sandbox Code Playgroud)
登录mysql:
mysql -u root -p
Run Code Online (Sandbox Code Playgroud)
打开新数据库
use zm;
Run Code Online (Sandbox Code Playgroud)
显示表格
show tables;
Run Code Online (Sandbox Code Playgroud)
在这里我收到一个错误:
ERROR 1018 (HY000): Can't read dir of './zm/' (errno: 13 - Permission denied)
Run Code Online (Sandbox Code Playgroud)
我也试着chmod 777和chmod 777 *在/path/to/new/location没有成功
修复!
问题是 apparmor 条目:
/path/to/new/location/ r,
/path/to/new/location/** rwk,
Run Code Online (Sandbox Code Playgroud)
实际上需要比原来的目录高一层:
/path/to/new/ r,
/path/to/new/** rwk,
Run Code Online (Sandbox Code Playgroud)
编辑 Ubuntu 18.04 要求我将符号链接的所有者更改为 mysql:
(在 /var/lib/mysql 中:)
chown -h mysql:mysql zm
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2469 次 |
| 最近记录: |