ubuntu下迁移mysql数据目录
一、安装MySQL
# apt-get install mysql-server -y # mysql_secure_installation # systemctl enable mysql
注:原安装目录在/var/lib/mysql , 鉴于部分项目中,系统盘目录一般较小,需要将目录迁移到数据盘,例如此项目中的/data文件夹

二、修改my.cnf配置文件

mkdir /data/mysql \cp -r /var/lib/mysql/* /data/mysql/ mv /var/lib/mysql /var/lib/mysql_bak **将/var/lib/mysql重命名为mysql_bak,避免数据丢失 chown -R mysql:mysql /data/mysql chown -R 755 /data/mysql systemctl start mysql
执行上述操作后,启动mysql服务报异常如下:
2024-09-10T06:04:03.329801Z 0 [Warning] [MY-010091] [Server] Can't create test file /data/mysql/mysqld_tmp_file_case_insensitive_test.lower-test
2024-09-10T06:04:03.329912Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.39-0ubuntu0.20.04.1) starting as process 15423
2024-09-10T06:04:03.333415Z 0 [Warning] [MY-010091] [Server] Can't create test file /var/lib/mysql/mysqld_tmp_file_case_insensitive_test.lower-test
2024-09-10T06:04:03.333428Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /var/lib/mysql/ is case insensitive
mysqld: File './binlog.index' not found (OS errno 13 - Permission denied)
2024-09-10T06:04:03.334548Z 0 [ERROR] [MY-010119] [Server] Aborting
2024-09-10T06:04:03.334900Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.39-0ubuntu0.20.04.1) (Ubuntu).
vim /etc/apparmor.d/usr.sbin.mysqld
添加62-63行配置

apparmor_parser -r /etc/apparmor.d/

三、常见问题
【启动失败】

尝试通过命令 /usr/sbin/mysqld --defalult-file=/etc/mysql/my.cnf 来启动mysql服务,继续提示如下错误。

【启动成功】
apparmor调整权限后,通过命令 mysql -uroot -p --socket=/data/mysql/mysql.sock 启动正常

【登录失败】

正确方式: msyql -uroot -p --socket=/data/mysql/mysql.sock
参考链接:
征途漫漫,惟有奋斗!
浙公网安备 33010602011771号