mysqldump备份或导出数据命令

请多多留言指教

注:以git-bash为基础,介绍mysqldump命令,导出相关数据

业务需求:根据条件检索并导出某张表中的数据,生成数据备份作为迁移数据

 

1、查看mysql安装目录

打开Navicat,点击查询,新建查询,show variables like "%char%";

2、mysqldump命令在什么位置执行?

a> cd进入到mysql安装目录,再次cd进入bin目录

b> 查看帮助信息:mysqldump -help,查看详细帮助信息:mysqldump --help

3、简单执行mysqldump命令,备份数据库

mysqldump -uroot -p123456 ayiol > d:/test_20200615.dump

以下为备份文件的部分内容:

4、备份某一个数据库中某一个表

命令格式如下

mysqldump -u用户名 -p密码 数据库名 表名 --where="筛选条件" > 导出文件路径

例子

mysqldump -uroot -p123456 ayiol a_user > test_20200615_user.sql

5、备份某一个数据库中某一个表,按条件备份(整行数据)

mysqldump -uroot -p123456 -t ayiol a_city --where="id<10" --triggers=false --replace > d:/city_0615.sql

说明

-t:只导数据,不增加create table建表和drop table语句

--where:条件

--triggers=false:不导触发器

--replace:使用REPLACE INTO 取代INSERT INTO

解释:Replace INTO和INSERT INTO的区别:

REPLACE的运行与baiINSERT很相似。只有du一点例外,假如表中的一个旧zhi记录与一个用于PRIMARY KEY或一个UNIQUE索引的dao新记录具有相同的值,则在新记录被插入之前,旧记录被删除。

注意,除非表有一个PRIMARY KEY或UNIQUE索引,否则,使用一个REPLACE语句没有意义。该语句会与INSERT相同,因为没有索引被用于确定是否新行复制了其它的行。

 

6、按条件备份(指定字段)

例子

mysql -uroot -p123456 ayiol -e "SELECT id,name,code from a_city where id < 10 INTO OUTFILE'd:/temp/0617_city_part_property.sql'"

结果

悲剧了。。。(并不是我想要的数据格式,想要的为insert into格式)

又找了一种解决方案

mysql -uroot -p123456 ayiol -e "select concat('insert into a_city(id,name,code) values(',id,',\'',name, '\'',',\'',code, '\');') from a_city where id < 10 INTO OUTFILE 'd:/temp/0617_city_part_property_02'"

结果

总算解决了,已亲自测试(网上查找的资料)

7、按条件备份(在insert中显示具体的字段名)

例子

mysqldump -uroot -p123456 --skip-extended-insert --complete-insert -t ayiol a_city --where="id<10">d:/temp/0617_hasInsertValues.sql

结果

解释

-t:只导数据,不增加create table建表和drop table语句

-c(--complete-insert):在insert中增加具体的字段名

-w(--where):后边跟where条件,只导出符合条件的数据

-skip-extended-insert:一行一行的导出

 

遇到的问题:

1、备份sql文件(文件很大),打开Navicat,指定数据库,运行sql文件时 提示10038错误码

最终查找问题: mysql安装目录下的my.ini文件中,max_allowed_packet未设置

解决方式:打开mysql安装目录,找到my.ini文件,新增属性max_allowed_packet=1024M

注:

MySQL max_allowed_packet设置以字节发送给服务器的最大数据包大小. (默认: 1MB),数据库变更需要:大的插入和更新可能会被max_allowed_packet参数限制,导致失败。

 

mysqldump备份命令

命令格式

mysqldump -h主机名 -P端口 -u用户名 -p密码 --database 数据库名 > 文件名.sql

例子

mysqldump -hlocalhost -P3306 -uroot -p123456 -t ayiol a_city --where="id < 10 " --triggers=false --replace  > D:/temp/0616_city.sql

 

其它引用参考网址(mysqldump命令):

https://baijiahao.baidu.com/s?id=1612955427840289665&wfr=spider&for=pc

https://www.bbsmax.com/A/l1dy8WYx5e/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章