1墓懂、查看當(dāng)前數(shù)據(jù)庫存儲路徑
qiang@09230:~$ mysql -uroot -p
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.28-0ubuntu0.20.04.3 (Ubuntu)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
mysql> show variables like 'datadir';
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| datadir | /var/lib/mysql/ |
+---------------+-----------------+
1 row in set (0.01 sec)
mysql>
2统捶、停止MySQL服務(wù)
qiang@09230:~$ sudo service mysql stop
qiang@09230:~$
3滚停、創(chuàng)建新的存儲文件沃粗,并將MySQL的數(shù)據(jù)復(fù)制到新的目錄中
#創(chuàng)建新存儲目錄
qiang@09230:~$ sudo mkdir -p /data/mysql
#將MySQL的數(shù)據(jù)復(fù)制到新的目錄中
qiang@09230:~$ sudo cp -ar /var/lib/mysql /data/mysql
#修改新存儲目錄權(quán)限,使該目錄的所有者和所屬組只能是mysql用戶
qiang@09230:~$ sudo chown -R mysql:mysql /data/mysql
4键畴、修改MySQL的配置文件:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
將datadir = /var/lib/mysql 改成 datadir = /data/mysql/mysql
image.png
如果出現(xiàn)如下權(quán)限限制的話最盅,先輸入:set noreadonly 再輸入:wq 保存后退出
qiang.png
5、修改安全保護(hù)文件
sudo vim /etc/apparmor.d/usr.sbin.mysqld
將
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
改成
/data/mysql/mysql/ r,
/data/mysql/mysql/** rwk,
# Allow data dir access
# /var/lib/mysql/ r,
# /var/lib/mysql/** rwk,
/data/mysql/mysql/ r,
/data/mysql/mysql/** rwk,
6镰吵、修改mysql訪問控制文件
sudo vim /etc/apparmor.d/abstractions/mysql
將
/var/lib/mysql{,d}/mysql{,d}.sock rw,
改成
/data/mysql/mysql{,d}/mysql{,d}.sock rw,
# /var/lib/mysql{,d}/mysql{,d}.sock rw,
/data/mysql/mysql{,d}/mysql{,d}.sock rw,
/{var/,}run/mysql{,d}/mysql{,d}.sock rw,
/usr/share/{mysql,mysql-community-server,mariadb}/charsets/ r,
/usr/share/{mysql,mysql-community-server,mariadb}/charsets/*.xml r,
7檩禾、重啟服務(wù)
qiang@09230:~$ sudo service apparmor restart
qiang@09230:~$ sudo service mysql start
qiang09230:~$
8、驗證修改是否生效
drc@iZwz91oq31508figapkas0Z:/data$ mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.28-0ubuntu0.20.04.3 (Ubuntu)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
mysql> show variables like 'datadir';
+---------------+---------------------+
| Variable_name | Value |
+---------------+---------------------+
| datadir | /data/mysql/mysql/ |
+---------------+---------------------+
1 row in set (0.00 sec)
mysql>
驗證修改成功疤祭。