赞
踩
- # 更新
- apt update
-
- # 检查mysql版本
- apt-cache madison mysql-server
-
- # 安装
- apt install -y mysql-server
-
- # 检查MySQL运行情况
- systemctl status mysql
与rhel/centos系列操作系统不同,在ubuntu系统中,存在一个名为AppArmor
的模块,他是一个Linux的内核安全模块,也称为应用盔甲,可以为 Ubuntu 应用程序提供强制访问控制。它是灵活而强大的安全工具,通过将应用程序限制在系统有限的资源集合中,来预防软件漏洞和恶意攻击。在apt安装的MySQL中直接修改datadir目录,会因为apparmor的存在而导致MySQL服务无法正常启动。所以修改datadir的主要方法是修改apparmor。
针对apparmor,修改datadir主要有两种方案。第一,屏蔽apparmor对MySQL的保护;第二,修改apparmor中mysql的datadir路径。下面对两种方案逐一进行讲解。
- # 停止MySQL服务
- systemctl stop mysql
- # 创建新的数据服务目录
- mkdir /data
- # 将默认的数据目录复制到新的目录
- cp -ar /var/lib/mysql /data/
- # 这里可以复制初始数据文件,可以通过 mysqld --initialize 命令重新初始化
- # 如果采用mysqld --initialize重新初始化的方式
- # 则需要在/data目录下,创建一个mysql目录,并将归属权限修改为mysql:mysql
- # 查看 ubuntu apparmor,可以看到里面有mysqld
- root@ecs-6021:~# apparmor_status | grep mysql
- /usr/sbin/mysqld
-
- # 建立禁用的软连接
- ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
- # 禁用
- apparmor_parser -R /etc/apparmor.d/disable/usr.sbin.mysqld
-
- # 再次通过apparmor_status | grep mysql查看mysql相关,已经没有mysql的保护了
-
- # 修改datadir
- # 修改/etc/mysql/mysql.cnf 或者 /etc/mysql/mysql.conf.d/mysqld.cnf
- # 在其中修改datadir=/data/mysql
-
- # 重启mysql
- systemctl start mysql
- # 停止MySQL服务
- systemctl stop mysql
- # 创建新的数据服务目录
- mkdir /data
- # 将默认的数据目录复制到新的目录
- cp -ar /var/lib/mysql /data/
- # 这里可以复制初始数据文件,可以通过 mysqld --initialize 命令重新初始化
- # 如果采用mysqld --initialize重新初始化的方式
- # 则需要在/data目录下,创建一个mysql目录,并将归属权限修改为mysql:mysql
-
- # 修改datadir
- # 修改/etc/mysql/mysql.cnf 或者 /etc/mysql/mysql.conf.d/mysqld.cnf
- # 在其中修改datadir=/data/mysql
-
- # 修改apparmor配置文件
- vi /etc/apparmor.d/usr.sbin.mysqld
- # 将其中Allow data dir access下的datadir目录修改为/data/mysql(默认为/var/lib/mysql)
- # 重启apparmor
- systemctl restart apparmor
-
- # 重启mysql
- systemctl start mysql
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。