cmd执行mysqldump命令

一、mysqldump

mysqldump命令位于mysql安装目录的bin目录下

主要作用:将一个或者数据库(一张或多张表)导出导一个文件中。

简单示例:

     业务:将多张业务数据表导出到一个文本文件中

mysqldump支持将多张 业务表导出导一个文本中,前提是这多个业务表有相同的字段。不支持表的关联导出,比如 A表关联B表   我导出A表5个字段B表5个字段。这样的不行。只能导单表

C:\Users\T440P\Desktop\20200911\sjjy\mysql\bin\mysqldump.exe  -uroot -proot --port 3307 -ct --lock-all-tables 
--compact --replace  --default-character-set=utf8  --databases sjjy --tables  test1 test2   -w "id between 1 and 1000"  > E:/123/sql.sql

-u  用户名
-p  密码
-h  连接地址
--port  端口号
--complete-insert 简写:-c  	使用完整的insert语句(包含列名称)
--no-create-info 简写:-t   	只导出数据,而不添加CREATE TABLE 语句。
--lock-all-tables  简写:-x		提交请求锁定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭--single-transaction 和--lock-tables 选项。 
--compact     去掉注释和头尾等结构
--replace		使用REPLACE INTO 取代INSERT INTO     不写是insert into
--default-character-set=utf8   设置导出的编码格式
--databases  后跟数据库名称   此选项可省略   直接上数据库名称即可
--tables    后跟表名称(多个表空格隔开即可)  此选项可省略  直接写表名称即可
-w   查询条件    支持子查询  

扩展一:上述mysqldump命令可以通过java 的Runtime.exec(String command)去调用执行。

https://blog.csdn.net/qq_35044419/article/details/108575656

扩展二:replace into  与 insert into的区别:

                                    如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。否则,直接插入新数据。

  注意:因为要根据主键或者是唯一索引判断是否有重复数据,所以操作的表必须要有主键或者是唯一索引。否则的话,replace into 会直接插入数据。

扩展三:除了replace  into  了解下这个东东

INSERT INTO table_name(id,name) VALUES(3, 'SuperMan') ON DUPLICATE KEY UPDATE name='SuperMan';

根据主键或者联合索引判断,没有则新增,有会自动监测update后的字段是否变化,变化则更新,没变化其实也执行了(受影响行0)

https://blog.csdn.net/qq_35044419/article/details/81974107

 

下面介绍下mysqldump的参数:(https://www.cnblogs.com/qq78292959/p/3637135.html

--all-databases  , -A

导出全部数据库。

mysqldump  -uroot -p --all-databases

--all-tablespaces  , -Y

导出全部表空间。

mysqldump  -uroot -p --all-databases --all-tablespaces

--no-tablespaces  , -y

不导出任何表空间信息。

mysqldump  -uroot -p --all-databases --no-tablespaces

--add-drop-database

每个数据库创建之前添加drop数据库语句。

mysqldump  -uroot -p --all-databases --add-drop-database

--add-drop-table

每个数据表创建之前添加drop数据表语句。(默认为打开状态,使用--skip-add-drop-table取消选项)

mysqldump  -uroot -p --all-databases  (默认添加drop语句)

mysqldump  -uroot -p --all-databases –skip-add-drop-table  (取消drop语句)

--add-locks

在每个表导出之前增加LOCK TABLES并且之后UNLOCK  TABLE。(默认为打开状态,使用--skip-add-locks取消选项)

mysqldump  -uroot -p --all-databases  (默认添加LOCK语句)

mysqldump  -uroot -p --all-databases –skip-add-locks   (取消LOCK语句)

--allow-keywords

允许创建是关键词的列名字。这由表名前缀于每个列名做到。

mysqldump  -uroot 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值