Mysql远端数据导入到本地数据库

为什么会写这个脚本

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

配置文件、bat脚本

db_local.cnf

[client]
host = localhost
user = root
password = '123456'

db_remote.cnf

[client]
host = 192.168.1.50
user = root
password = '123456'

可能有些同学不清楚为什么我这里要用配置文件来配置数据库的连接信息,其实是因为解决连接过程中的警告,将密码直接写到命令行里面,相当于直接暴露密码,所以认为不安全。
而配置里面的数据是什么意思呢,其实是数据库的客户端启动选项,我们在下面脚本中指定加载这个配置文件的客户端启动选项。

transferData.bat

:: function: 从db_remote到db_local的数据传输

@echo off

SET local_db=my_share
SET remote_db=my_share

ECHO ******** 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
在客户端和服务器之间启用压缩传递所有信息

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要将Druid的MySQL数据库中的数据导入到本地MySQL数据库,可以按照以下步骤进行操作: 1. 在本地MySQL数据库中创建与Druid的MySQL数据库相同的表结构,可以使用CREATE TABLE语句来创建表。 2. 在本地MySQL数据库中创建一个与Druid的MySQL数据库连接的数据源,可以使用MySQL命令行客户端或者其他MySQL客户端工具连接。 3. 在本地MySQL数据库中使用SELECT语句查询Druid的MySQL数据库中的数据,并将结果保存到本地的一个临时文件中。 4. 在本地MySQL数据库中使用LOAD DATA INFILE语句将临时文件中的数据导入到本地MySQL数据库中的表中。 需要注意的是,如果Druid的MySQL数据库中的数据量比较大,那么可能需要分批导入或者使用专业的数据迁移工具来完成数据的迁移。同时,在导入数据时也需要注意数据的一致性和正确性。 ### 回答2: 要把druid的MySQL数据库中的数据导入本地MySQL数据库,可以参考下面的步骤: 1. 首先,确保本地MySQL数据库已经启动并且可以连接。如果还没有安装MySQL数据库,可以先进行安装并启动。 2. 打开druid的MySQL数据库的管理工具,如phpMyAdmin、Navicat等,登录并选择要导出数据库。 3. 在导出数据库之前,可以根据需要选择要导出数据表或者整个数据库。如果只需要导出特定的数据表,可以在管理工具中选择对应的表。 4. 导出数据的方式可以选择导出为SQL文件或者导出为CSV文件。选择合适的导出选项,并且保存导出文件到本地计算机。 5. 然后,打开本地MySQL数据库的管理工具,登录并选择要导入数据数据库。如果还没有创建目标数据库,可以先进行创建。 6. 在管理工具中选择导入选项,并且选择之前导出的文件进行导入操作。 7. 导入过程中可能需要设置一些选项,如字符导入方式等,根据实际情况进行选择和设置。 8. 确认导入选项设置无误后,开始执行导入操作。导入过程可能需要一些时间,取决于导入数据量和网络速度。 9. 导入完成后,可以在本地MySQL数据库的管理工具中查看导入数据,确保导入成功。 总结:通过以上步骤,就可以将druid的MySQL数据库中的数据成功导入到本地MySQL数据库中。 ### 回答3: 要将Druid的MySQL数据库中的数据导入到本地MySQL数据库,可以按照以下步骤进行操作: 1. 首先,确保本地MySQL数据库已经正确安装并启动。 2. 在Druid的MySQL数据库中,使用导出工具(如mysqldump)将数据导出为SQL文件。可以使用以下命令导出整个数据库: ``` mysqldump -u 用户名 -p 密码 数据库名 > 导出文件名.sql ``` 3. 将导出的SQL文件复制到本地机器上,并确保路径和文件名正确。 4. 在本地MySQL数据库中,创建新的数据库(如果已存在,则跳过此步骤): ``` CREATE DATABASE 新数据库名; ``` 5. 在本地MySQL数据库中,使用导入工具(如mysql或source命令)导入SQL文件。可以使用以下命令导入数据: ``` mysql -u 用户名 -p 密码 新数据库名 < 导出文件名.sql ``` 6. 等待导入过程完成,导入的速度取决于数据量的大小,可能需要一些时间。 7. 导入完成后,可以使用本地MySQL数据库客户端工具验证数据是否正确导入,并执行必要的查询和操作。 总结起来,将Druid的MySQL数据库中的数据导入到本地MySQL数据库需要导出数据库的SQL文件,然后在本地创建目标数据库导入SQL文件。最后,通过本地MySQL客户端工具验证数据是否正确导入

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值