当前位置:   article > 正文

Ubuntu系统中apt安装MySQL 8_ubuntu指定目录安装mysql8

ubuntu指定目录安装mysql8

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

1. 安装mysql8

  1. # 更新
  2. apt update
  3. # 检查mysql版本
  4. apt-cache madison mysql-server
  5. # 安装
  6. apt install -y mysql-server
  7. # 检查MySQL运行情况
  8. 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

  1. # 停止MySQL服务
  2. systemctl stop mysql
  3. # 创建新的数据服务目录
  4. mkdir /data
  5. # 将默认的数据目录复制到新的目录
  6. cp -ar /var/lib/mysql /data/
  7. # 这里可以复制初始数据文件,可以通过 mysqld --initialize 命令重新初始化
  8. # 如果采用mysqld --initialize重新初始化的方式
  9. # 则需要在/data目录下,创建一个mysql目录,并将归属权限修改为mysql:mysql
  10. # 查看 ubuntu apparmor,可以看到里面有mysqld
  11. root@ecs-6021:~# apparmor_status | grep mysql
  12. /usr/sbin/mysqld
  13. # 建立禁用的软连接
  14. ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
  15. # 禁用
  16. apparmor_parser -R /etc/apparmor.d/disable/usr.sbin.mysqld
  17. # 再次通过apparmor_status | grep mysql查看mysql相关,已经没有mysql的保护了
  18. # 修改datadir
  19. # 修改/etc/mysql/mysql.cnf 或者 /etc/mysql/mysql.conf.d/mysqld.cnf
  20. # 在其中修改datadir=/data/mysql
  21. # 重启mysql
  22. systemctl start mysql

2.2. 修改apparmor

  1. # 停止MySQL服务
  2. systemctl stop mysql
  3. # 创建新的数据服务目录
  4. mkdir /data
  5. # 将默认的数据目录复制到新的目录
  6. cp -ar /var/lib/mysql /data/
  7. # 这里可以复制初始数据文件,可以通过 mysqld --initialize 命令重新初始化
  8. # 如果采用mysqld --initialize重新初始化的方式
  9. # 则需要在/data目录下,创建一个mysql目录,并将归属权限修改为mysql:mysql
  10. # 修改datadir
  11. # 修改/etc/mysql/mysql.cnf 或者 /etc/mysql/mysql.conf.d/mysqld.cnf
  12. # 在其中修改datadir=/data/mysql
  13. # 修改apparmor配置文件
  14. vi /etc/apparmor.d/usr.sbin.mysqld
  15. # 将其中Allow data dir access下的datadir目录修改为/data/mysql(默认为/var/lib/mysql)
  16. # 重启apparmor
  17. systemctl restart apparmor
  18. # 重启mysql
  19. systemctl start mysql

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/65152
推荐阅读
相关标签
  

闽ICP备14008679号