温馨提示×

在Ubuntu上如何迁移MariaDB数据

小樊
45
2025-09-19 04:20:27
栏目: 云计算

在Ubuntu上迁移MariaDB数据的完整流程

1. 迁移前准备

  • 备份现有数据:使用mysqldump工具导出所有数据库(或指定数据库),确保数据安全。命令示例:
    sudo mysqldump -u root -p --all-databases > full_backup.sql
    执行后会提示输入root密码,导出的full_backup.sql文件包含所有数据库的结构和数据。
  • 安装目标MariaDB:若迁移至新服务器或新版本,需先安装MariaDB。命令示例:
    sudo apt update && sudo apt install mariadb-server
    安装过程中会提示设置root密码,后续需牢记此密码。

2. 停止MariaDB服务

迁移数据前,需停止MariaDB服务以避免数据损坏。命令:
sudo systemctl stop mariadb
执行后可通过systemctl status mariadb确认服务状态(应为“inactive (dead)”)。

3. 迁移数据文件(物理迁移)

若需迁移整个数据目录(如更换存储路径或服务器),需复制原数据目录至新位置。默认数据目录为/var/lib/mysql,命令示例:
sudo cp -a /var/lib/mysql /new/location/mysql
-a参数保留文件权限和属性,确保数据完整性。

4. 修改配置文件

编辑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,保存并退出。

5. 调整权限

确保新数据目录的所有权和权限正确,避免MariaDB无法访问。命令:
sudo chown -R mysql:mysql /new/location/mysql
-R参数递归修改目录及子文件的所有权为mysql用户和组。

6. 启动MariaDB服务

启动服务并验证状态:
sudo systemctl start mariadb
sudo systemctl status mariadb(应为“active (running)”)。

7. 恢复数据(逻辑迁移/补充)

若使用mysqldump导出备份,需将备份文件导入目标数据库。命令示例:
mysql -u root -p < full_backup.sql
执行后会提示输入root密码,导入完成后可通过mysql -u root -p -e "SHOW DATABASES;"验证数据库是否恢复。

8. 验证迁移结果

  • 检查数据库列表:登录MariaDB后执行SHOW DATABASES;,确认所有数据库均已迁移。
  • 验证数据完整性:选择目标数据库(USE database_name;),查询表数据(SELECT * FROM table_name LIMIT 10;),确保数据与源数据库一致。
  • 测试应用程序:若应用程序依赖MariaDB,需更新其数据库配置(如连接字符串中的主机、端口、用户名、密码),并测试功能是否正常。

9. 清理与优化(可选)

  • 若迁移成功,可删除旧数据目录以释放空间(需提前确认备份无误):
    sudo rm -rf /var/lib/mysql
  • 对于大型数据库,迁移后可执行OPTIMIZE TABLE命令优化表性能。

0