mysql 导出查询结果/导入.sql文件数据/mysqldump导出表or数据

1. 将mysql查询结果导出到指定文件:

用 mysql -e 生成结果导入指定文件时
     ● 若要同时显示语句本身:-v
     ● 若要增加查询结果行数:-vv
     ● 若要增加执行时间:       -vvv 

不用在mysql提示符下执行sql语句,即可在shell中操作sql语句的方法,示例模板:

mysql  -hhostname -Pport -uusername -ppassword -e sql语句                   
mysql  -hhostname -Pport -uusername -ppassword -e sql语句 > xxx.txt     // 将查询结果集导入txt文件(重定向)

// 将mysql查询结果重定向到 test.txt(mysql登录命令 -e "sql语句" > xxx.txt),示例:
mysql -h x.x.x.x -P xx -uroot -p'xxxxxx' -D xxx -e "SELECT a FROM b WHERE create_time > 'xxxx-xx-xx xx:xx:xx' GROUP BY d HAVING COUNT(1) < 5 LIMIT 10;" > test.txt

2. 导入.sql文件到数据库

rz 上传.sql文件
source ./xxx.sql

3. mysqldump从数据库导出 建表语句/insert语句(数据库表数据) 到文本:

  • 普通导出:
    mysqldump
    -h 数据库ip -P 数据库端口  -u用户  -p'密码'  --databases 数据库名 --tables 表名1  表名2  > test.sql
  • 条件导出(带drop表结构、表数据):
    mysqldump -h 数据库ip -P 数据库端口  -u用户  -p'密码'  --databases 数据库名 --where=" 字段名='字段值' " > test.sql

示例:

  • 导出多条记录至一条insert语句中(导出结果包含自增id字段,如何过滤掉):
    mysqldump -h xx.xxx.xx.xxx -P xxxx -uroot -p'xxxxxxxxxx' --databases xxxxxxx --skip-add-drop-table --complete-insert --tables xxx --where="create_time>'2021-12-09 00:00:00'" > test.sql
  • 导出多条记录至多条insert语句中(导出结果包含自增id字段):
    mysqldump -h xx.xxx.xx.xxx -P xxxx -uroot -p'xxxxxxxxxx' --databases xxxxxxx --skip-add-drop-table --complete-insert --skip-extended-insert --tables xxx --fields-terminated-by="id" --where="create_time>'2021-12-09 00:00:00'" > test.sql

可选参数:

mysqldump会导致锁表,innodb需加上 --single-transaction 选项,参考:mysqldump锁表问题

--skip-tz-utctimestamp数据类型导出时会有时区问题,导出机器默认为东八区时区,导出时的TIME_ZONE=‘+00:00‘ 这样导出的数据和表里看到的差了8小时。如果想在数据导出时不默认进行时区的转换,可以在导出语句中增加参数 --skip-tz-utc,这样导出的timestamp数据和在表里看到的时候是一样的

--tables:表1  表2 为可选字段

--skip-add-drop-table :取消drop表语句

--skip-extended-insert :每条记录占一行

--complete-insert :带字段名的完整insert语句

--no-data:只导出表结构,不导出数据

 补充:

        mysqldump 不支持导出指定字段(忽略指定字段),都是对应表的全字段导出,后续再自己在文本中手动去除不需要的字段即可。另外也可以参考该方法:mysql 导出数据库部分字段或部分数据_kezhen的专栏-CSDN博客_mysqldump 导出部分字段

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值