环境:
- Ubuntu 20.04 云映像,使用云配置启动,总共有 9 个硬盘。
- mysql-server 8.0.27 使用 apt 安装。
- 两个逻辑卷,每个卷有四个硬盘(sdb-e、sdf-i),以读写方式安装在
/mysql/data
和 上/mysql/log
。 - 用户 mysql 拥有
/mysql
所有子目录并可以对其进行写入。 - 配置文件
/etc/mysql/conf.d/mysql.cnf
定义basedir
为/var/lib/mysql
(其中所有默认内容来自安装)datadir
和/mysql/data
。
问题:
- 启用/启动 mysql.service 预检查失败,并显示目录
/mysql/data
已存在的消息,因此无法启动。
如何摆脱这种进退维谷的困境?
答案1
这解决了这个问题:
# Allow directory changes in AppArmor
sudo sed -i '/\# Allow data files dir access/a /mysql/** rwk,' /etc/apparmor.d/usr.sbin.mysqld
sudo systemctl stop apparmor.service
sleep 10
sudo systemctl start apparmor.service
从子文件夹中删除 lost+found 文件夹/mysql/
并使用初始化数据库
sudo -u mysql mysqld --initialize