mysql使用source命令导入.sql文件
背景
公司有一个老项目,是给政府部门开发的项目,不清楚当时合同是怎么谈的(那时候我还没有入职),这个管理系统是部署在公司服务器上的。现在他们想把这个系统转移到自己的服务器上,公司管理层面已经同意,剩下就是具体实施了。
对方按要求安装了centos系统,在网络安全方面使用了防火墙、堡垒机这一类的东西,之后就是我的工作了。安装mysql数据库,tomcat服务器,nginx,redis等软件。
这里说一下我是怎么复制mysql数据的。
我一开始的想法是:转储sql文件,让对方放开mysql端口一段时间,使用navicat运行sql文件,数据即可复制过去。

上边的想法非常可能会遇到问题。由于这个系统已经运行了好几年,产生的数据量是挺大的,那么问题就来了,数据量一旦有一定规模,传输时间必然增加,那么在传输的这段时间中,如果产生网络波动,传输可能就失败了。
针对这种可能,最终选择转储sql文件,上传到对方服务器,进入mysql,使用source命令运行sql文件。
步骤如下:
1转储sql文件

生成example.sql文件
2上传到服务器

3进入mysql,使用source命令运行sql文件
3.1Source命令介绍:
Window中:source D:\example.sql
Linux中: source /home/zj/example.sql
3.2使用步骤
1. 输入账号密码,进入mysql
2. 切换数据库use database_name;
3. set names utf8; (或其他需要的编码,防止出现乱码)
4. source example.sql (sql文件存放路径)

这个命令速度非常快。