当前位置:网站首页 >  百科

适用于零基础新手的服务器MySQL数据库迁移全流程实操指南

时间:2026年06月02日 22:25:13 来源:易频IT社区

准备工作

本指南针对最常用的MySQL中小数据量迁移场景,你需要提前满足以下条件:

  • 你可以通过SSH正常连接旧服务器(源)和新服务器(目标)
  • 新服务器已经完成MySQL安装,对应安装命令如下,直接执行即可:

CentOS/RHEL 系列:

``` yum install -y mysql-server ```

Ubuntu/Debian 系列:

``` apt update && apt install -y mysql-server ```
  • 两台服务器之间网络互通,新服务器可以通过SSH连接旧服务器
  • 提前获取你要迁移的数据库的用户名、密码,确认需要迁移的库名

第一步:旧服务器导出数据库备份

1. 执行导出命令

登录旧服务器后,根据你要迁移的范围选择对应命令,推荐使用不明文写密码的方式,避免密码留在命令历史中

迁移单个指定数据库:

``` mysqldump -u[你的数据库用户名] -p --default-character-set=utf8mb4 [要迁移的库名] > /root/migration_backup.sql ```

迁移服务器上所有数据库:

``` mysqldump -u[你的数据库用户名] -p --all-databases --default-character-set=utf8mb4 > /root/all_db_backup.sql ```

输入命令后回车,会提示输入数据库密码,输入完成后回车等待执行,没有报错即为导出成功。

2. 传输备份文件到新服务器

使用系统自带的scp命令即可完成传输,不需要额外安装工具,在旧服务器上执行以下命令

``` scp /root/migration_backup.sql [新服务器SSH用户名]@[新服务器公网IP]:/root/ ```

常见细节修正:如果新服务器SSH端口不是默认的22,需要添加大写的-P参数指定端口,示例:

``` scp -P 2222 /root/migration_backup.sql root@123.123.123.123:/root/ ```

如果传输大文件,可以添加-C参数开启压缩传输,提升速度:scp -C ...,输入命令后回车,输入新服务器的SSH密码即可开始传输,传输完成后登录新服务器即可看到备份文件。

第二步:新服务器导入数据

1. 提前调整配置避免导入失败

MySQL默认允许导入的最大文件只有几十M,导入大文件会直接报错,需要先修改配置:

打开MySQL配置文件:CentOS路径为/etc/my.cnf,Ubuntu路径为/etc/mysql/mysql.conf.d/mysqld.cnf,在[mysqld]节点下添加以下配置:

``` max_allowed_packet = 1G ```

适用于零基础新手的服务器MySQL数据库迁移全流程实操指南

保存退出后,重启MySQL生效:

CentOS系列:

``` systemctl restart mysqld ```

Ubuntu系列:

``` systemctl restart mysql ```

如果迁移的是单个数据库,需要先在新MySQL中创建空数据库,登录新MySQL执行:

``` -- 登录命令:mysql -u[用户名] -p,输入密码进入后执行下方语句 CREATE DATABASE [新库名] DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; ```

全库迁移不需要创建,直接跳过这一步。

2. 执行导入命令

在新服务器执行对应导入命令,同样推荐不明文写密码:

导入单个数据库:

``` mysql -u[新数据库用户名] -p --default-character-set=utf8mb4 [新库名] < /root/migration_backup.sql ```

导入全量数据库:

``` mysql -u[新数据库用户名] -p --default-character-set=utf8mb4 < /root/all_db_backup.sql ```

回车输入密码后等待执行,命令行没有返回报错即为导入成功。

第三步:迁移后校验与配置更新

导入完成后先做数据校验:登录新MySQL,切换到迁移后的库,执行show tables;查看表数量是否和原库一致,随机选几张大表执行select count() from [表名];核对数据量。

数据核对无误后,更新你的应用配置文件:把原来配置文件中的数据库地址、端口、账号密码替换为新服务器的信息,替换完成后重启应用,测试所有业务功能是否正常。

如果需要给新数据库开放外部访问权限,登录新MySQL执行以下命令:

``` GRANT ALL ON [库名]. TO '你的数据库用户名'@'%' IDENTIFIED BY '你的数据库密码'; FLUSH PRIVILEGES; ```

建议保留旧服务器的数据库备份至少7天,确认业务完全稳定后再清理旧数据。

常见问题排查

  • 报错:Got a packet bigger than 'max_allowed_packet' bytes:说明配置的max_allowed_packet还是太小,修改为2G或更大,重启MySQL后重新导入即可
  • 大文件传输中断:可以将备份文件分卷传输,旧服务器执行split -b 100m migration_backup.sql part_分成多个100M的分卷,传输到新服务器后执行cat part_ > migration_backup.sql合并即可
  • 迁移后中文乱码:导出和导入都指定了utf8mb4字符集即可避免,如果还是乱码,核对原数据库的字符集,统一导入时的字符集即可
  • 报错:Access denied for user:核对导出导入时的用户名密码是否正确,新MySQL的用户是否拥有对应库的读写权限

相关推荐

最新

热门

推荐

精选

标签

易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。

Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图