请多多留言指教

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

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

 

1、查看mysql安装目录

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

 

mysqldump备份或导出数据库命令

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

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

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

 

mysqldump备份或导出数据库命令

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

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

 

mysqldump备份或导出数据库命令

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

mysqldump备份或导出数据库命令

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

mysqldump -uroot -p123456 ayiol a_user > test_20200615_user.dump

 

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

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

说明:

-t:只导数据

--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、备份某一个数据库中某一个表,按条件备份(指定字段)

正在编写中

 

 

 

 

遇到的问题:

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

mysqldump备份或导出数据库命令

最终查找问题: mysql配置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 -P12581 -uroot -p123456 -t db_test t_ground_objects --where="id= '1' " --triggers=false --replace  > D:/temp/0616_example.sql

 

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

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

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

 

 

相关文章: