重新定位 datadir 后,MySQL 挂断“正在激活(启动后)”状态

重新定位 datadir 后,MySQL 挂断“正在激活(启动后)”状态

难题:在更改 MySQL 存储数据的位置(到不同的硬盘驱动器)并更新 apparmor 权限后,启动 MySQL 服务似乎使其处于这种奇怪的“激活”状态,并且日志不会给我任何有关其失败原因的信息。

关于如何重新启动 MySQL,您有什么想法吗?(“systemctl status mysql.service”和“journalctl -xe”的 Pastebin

采取的措施

  1. 停止服务

sudo service mysql stop

  1. 重新定位 MySQL 文件:

sudo rsync -av /var/lib/mysql /mnt/HDDB/database/mysql

  1. 将数据目录的位置更改/etc/mysql/mysql.conf.d/mysqld.cnf为:

datadir=/mnt/HDDB/database/mysql

  1. 在以下位置添加 AppArmor 别名/etc/apparmor.d/tunables/alias

alias /var/lib/mysql/ -> /mnt/HDDB/database/mysql/,

  1. 添加了几行/etc/apparmor.d/local/usr.sbin.mysqld

/mnt/HDDB/database/mysql/ r, /mnt/HDDB/database/mysql/** rwk,

/etc/apparmor.d/usr.sbin.mysqld

/proc/** r,

/sys/devices/system/node/ r,

/sys/devices/system/node/** r,

...以防止出现任何可能的 AppArmor 拒绝错误。在阅读了大量有类似问题的 StackExhange 帖子后,我确信它应该可以正常工作,但我不知道是什么导致了挂断。

当数据目录设置为其默认位置时,MySQL 确实可以按预期工作,但这不是我想要存储数据的地方(默认驱动器是 SSD),因此,任何帮助解决它的问题都将非常感谢。

答案1

不要改变任何东西

/etc/apparmor.d/tunables/alias

,只是改变

/etc/apparmor.d/usr.sbin.mysqld

我改变了这个:

# Allow data dir access
#  /var/lib/mysql/ r,
#  /var/lib/mysql/** rwk,
/mnt/largedisk/mysql/ r,
/mnt/largedisk/mysql/** rwk,

作品。

相关内容