Ubuntu系统中apt安装MySQL 8

本篇主要讲述如何在Ubuntu操作系统上安装MySQL 8,并指定一个自定义的datadir目录。

1. 安装mysql8

# 更新
apt update

# 检查mysql版本
apt-cache madison mysql-server

# 安装
apt install -y mysql-server

# 检查MySQL运行情况
systemctl status mysql

2. 修改datadir

与rhel/centos系列操作系统不同,在ubuntu系统中,存在一个名为AppArmor的模块,他是一个Linux的内核安全模块,也称为应用盔甲,可以为 Ubuntu 应用程序提供强制访问控制。它是灵活而强大的安全工具,通过将应用程序限制在系统有限的资源集合中,来预防软件漏洞和恶意攻击。在apt安装的MySQL中直接修改datadir目录,会因为apparmor的存在而导致MySQL服务无法正常启动。所以修改datadir的主要方法是修改apparmor。

针对apparmor,修改datadir主要有两种方案。第一,屏蔽apparmor对MySQL的保护;第二,修改apparmor中mysql的datadir路径。下面对两种方案逐一进行讲解。

2.1. 屏蔽apparmor

# 停止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

2.2. 修改apparmor

# 停止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

你可能感兴趣的:(mysql,数据库,mysql,ubuntu)