ubuntu22.04修改mysql存储路径
操作系统ubuntu22.04,mysql8.0。安装方式apt install安装的。
正常修改存储路径:
先登录进去
mysql -u root -p
然后看下当前的数据存储路径:
show global variables like "%datadir%";
当然看不看也不重要,一般默认的就是/var/lib/mysql
然后把mysql服务停掉
systemctl stop mysql.service
找到mysql的配置文件,配置文件一般是在/etc/mysql下,这个目录下有好多文件,有些文件只是个链接,有些文件又指定了别的文件,反正最终要找哪个配置文件力有[mysqld]这个节点,最后找到是在/etc/mysql/mysql.conf.d/mysqld.cnf
在[mysqld]节点下指定新的数据存储路径
datadir=/mnt/storage/vdb1/mysql
然后把原路径下的文件拷贝到新路径下,由于我们一般是用root用户操作的,所以这些文件拷贝过去所有者就是root了,原来的mysql就没权限了,需要改变文件的所有者
chown mysql:mysql -R /mnt/storage/vdb1/mysql
然后还没完,这时候如果重启MySQL服务就是各种没权限,现在的ubuntu用了一个叫apparmor的玩意来管理权限
找到它的配置文件,进入/etc/apparmor.d这个目录,可以看到下面有好多文件,其中有个usr.sbin.mysqld,这个配置文件就是用来控制mysqld的权限的
根据注释Allow data dir access或者原来的路径/var/lib/mysql,照着原来的改成新的路径
#########这两个是原来的########
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
##########下面这个是新加的,偷懒一点给到了上一级目录############
/mnt/storage/vdb1/** rwk,
改完保存后,重启apparmor服务
service apparmor restart
最后重启mysql服务
systemctl start mysql.service