在Ubuntu上迁移MariaDB数据的完整流程
mysqldump
工具导出所有数据库(或指定数据库),确保数据安全。命令示例:sudo mysqldump -u root -p --all-databases > full_backup.sql
full_backup.sql
文件包含所有数据库的结构和数据。sudo apt update && sudo apt install mariadb-server
迁移数据前,需停止MariaDB服务以避免数据损坏。命令:
sudo systemctl stop mariadb
执行后可通过systemctl status mariadb
确认服务状态(应为“inactive (dead)”)。
若需迁移整个数据目录(如更换存储路径或服务器),需复制原数据目录至新位置。默认数据目录为/var/lib/mysql
,命令示例:
sudo cp -a /var/lib/mysql /new/location/mysql
-a
参数保留文件权限和属性,确保数据完整性。
编辑MariaDB配置文件(通常为/etc/mysql/mariadb.conf.d/50-server.cnf
),修改datadir
参数指向新数据目录。示例:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
找到datadir = /var/lib/mysql
,修改为datadir = /new/location/mysql
,保存并退出。
确保新数据目录的所有权和权限正确,避免MariaDB无法访问。命令:
sudo chown -R mysql:mysql /new/location/mysql
-R
参数递归修改目录及子文件的所有权为mysql
用户和组。
启动服务并验证状态:
sudo systemctl start mariadb
sudo systemctl status mariadb
(应为“active (running)”)。
若使用mysqldump
导出备份,需将备份文件导入目标数据库。命令示例:
mysql -u root -p < full_backup.sql
执行后会提示输入root密码,导入完成后可通过mysql -u root -p -e "SHOW DATABASES;"
验证数据库是否恢复。
SHOW DATABASES;
,确认所有数据库均已迁移。USE database_name;
),查询表数据(SELECT * FROM table_name LIMIT 10;
),确保数据与源数据库一致。sudo rm -rf /var/lib/mysql
OPTIMIZE TABLE
命令优化表性能。