博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql远端数据导入到本地数据库
阅读量:3785 次
发布时间:2019-05-22

本文共 1759 字,大约阅读时间需要 5 分钟。

为什么会写这个脚本

在工作中时常要从内网拉数据,有时为了方便就直接用Navicat工具的数据传输,将内网的数据库数据拉到本地,但每次拉取都需要选择源头、目标、某某库之类的,如果是拉数据的评率高的话,那这种方法的容错率很低,说不准某个时候写代码写的懵逼懵逼的时候,突然要从内网拉数据,结果把源跟目标填反了,那真的是罪过了。

废话不多说了,我直接把我写的脚本贴出来了,往下看。

配置文件、bat脚本

db_local.cnf

[client]host = localhostuser = rootpassword = '123456'

db_remote.cnf

[client]host = 192.168.1.50user = rootpassword = '123456'

可能有些同学不清楚为什么我这里要用配置文件来配置数据库的连接信息,其实是因为解决连接过程中的警告,将密码直接写到命令行里面,相当于直接暴露密码,所以认为不安全。

而配置里面的数据是什么意思呢,其实是数据库的客户端启动选项,我们在下面脚本中指定加载这个配置文件的客户端启动选项。

transferData.bat

:: function: 从db_remote到db_local的数据传输@echo offSET local_db=my_shareSET remote_db=my_shareECHO ******** copy start ********mysqldump --defaults-extra-file=./db_remote.cnf %remote_db% --opt --compress --skip-lock-tables --verbose | mysql --defaults-extra-file=./db_local.cnf %local_db%ECHO ******** copy success ********PAUSE

双击transferData.bat即可拉取数据了。

参数科普

配置文件的作用

主要是消除直接输入密码导致的警告
因而专用 --defaults-extra-file=./db_remote.cnf 来直接加载配置文件

–defaults-extra-file=file_name

在启动中不仅仅会加载指定的配置文件,还会加载所有默认需要加载的配置文件
–defaults-file=file_name
在启动中只会加载指定的配置文件

管道符

| 是一个管道符

用管道符将mysqldump的输出流和mysql的输入流串接在一起

管道符左边命令的输出作为管道符右边命令的输入

连续使用管道意味着第一个命令的输出会作为第二个命令的输入,
第二个命令的输出又会作为第三个命令的输入

mysqldump命令解析

opt

等同于–add-drop-table, --add-locks, --create-options, --quick, --extended-insert, --lock-tables, --set-charset, --disable-keys 该选项默认开启, 可以用–skip-opt禁用.

lock-tables, -l

开始导出前,锁定所有表。用READ LOCAL锁定表以允许MyISAM表并行插入。对于支持事务的表例如InnoDB和BDB,–single-transaction是一个更好的选择,因为它根本不需要锁定表。请注意当导出多个数据库时,–lock-tables分别为每个数据库锁定表。因此,该选项不能保证导出文件中的表在数据库之间的逻辑一致性。不同数据库表的导出状态可以完全不同。

verbose, --v

输出多种平台信息。

complete-insert, -c

使用完整的insert语句(包含列名称)。这么做能提高插入效率,但是可能会受到max_allowed_packet参数的影响而导致插入失败。
mysqldump -uroot -p --all-databases --complete-insert

compress, -C

在客户端和服务器之间启用压缩传递所有信息

如果觉得有用,请给个赞吧,您的每一个赞都是对我最大的支持!

转载地址:http://bcktn.baihongyu.com/

你可能感兴趣的文章
招新成绩统计
查看>>
webpack
查看>>
go部署
查看>>
配置swagger--go语言
查看>>
打印杨辉三角
查看>>
java中String类中常用方法
查看>>
flutter学习笔记:第一个APP应用
查看>>
哲学家进餐问题
查看>>
Python-Opencv学习总结(一):图像读取和获取图像特征
查看>>
实验十三:导出与导入
查看>>
第十五周.
查看>>
基于MVC模式的用户登录
查看>>
Java Swing搭建QQ登录界面
查看>>
Spring常用依赖及注解的使用
查看>>
解决Maven中资源过滤问题
查看>>
Springboot中解决Ajax请求跨域问题
查看>>
Keras软件安装
查看>>
cuda安装
查看>>
Anaconda3换源配置
查看>>
Unsafe.putOrderedXXX系列方法详解(数组赋值的第二种方式)
查看>>