使用mysqldump备份原库,2. 用scp传输备份文件,3. 在新服务器创建数据库并导入数据,确保版本兼容与权限正确即可完成迁移。
迁移MySQL数据库到新服务器,核心是数据导出、传输和导入。只要保证版本兼容、权限设置正确,整个过程并不复杂。
1. 备份原服务器数据库
使用 mysqldump 工具备份数据是最常见的方式。它可以导出结构和数据,生成SQL文件。
基本命令如下:
- mysqldump -u 用户名 -p 数据库名 > backup.sql
如果要备份所有数据库,加上 –all-databases 参数:
- mysqldump -u root -p –all-databases > full_backup.sql
建议同时加上 –single-transaction(用于InnoDB,避免锁表)和 –routines(包含存储过程):
- mysqldump -u root -p –all-databases –single-transaction –routines > full_backup.sql
2. 将备份文件传送到新服务器
使用 scp 或 sftp 把SQL文件安全地复制到新服务器。
- scp backup.sql user@新服务器IP:/home/user/
确保目标目录有足够空间,并且MySQL服务有读取权限。
3. 在新服务器恢复数据库
先登录MySQL,创建对应的数据库(如使用–all-databases则无需手动建库):
- mysql -u root -p
- CREATE DATABASE if not exists 数据库名;
退出后,导入数据:
- mysql -u root -p 数据库名
如果是全库备份,直接用:
- mysql -u root -p
4. 配置新服务器环境
迁移完成后,检查以下几点:
- MySQL版本是否兼容(建议主版本号一致)
- 字符集和排序规则是否匹配(查看my.cnf配置)
- 用户账号和权限是否重建(可从原服务器导出mysql.user表或手动添加)
- 防火墙是否开放3306端口(如需远程访问)
- 应用连接配置是否更新为新数据库地址
基本上就这些。只要备份完整、导入无错,数据库就能正常运行。建议在迁移前先在测试环境演练一次。