MySQL数据库原理学习(五十五)
7.2.5 mysqldump
mysqldump 客户端工具用来备份数据库或在不同数据库之间进行数据迁移。备份内容包含创建表,及插入表的SQL语句。
语法 :
mysqldump [options] db_name [tables]
mysqldump [options] --database/-B db1 [db2 db3...]
mysqldump [options] --all-databases/-A
连接选项 :
-u, --user=name 指定用户名
-p, --password[=name] 指定密码
-h, --host=name 指定服务器ip或域名
-P, --port=# 指定连接端口
输出选项:
--add-drop-database 在每个数据库创建语句前加上 drop database 语句
--add-drop-table 在每个表创建语句前加上 drop table 语句 , 默认开启 ; 不
开启 (--skip-add-drop-table)
-n, --no-create-db 不包含数据库的创建语句
-t, --no-create-info 不包含数据表的创建语句
-d --no-data 不包含数据
-T, --tab=name 自动生成两个文件:一个.sql文件,创建表结构的语句;一
个.txt文件,数据文件
示例:
A. 备份db01数据库
mysqldump -uroot -p1234 db01 > db01.sql
可以直接打开db01.sql,来查看备份出来的数据到底什么样。
备份出来的数据包含:
删除表的语句
创建表的语句
数据插入语句
如果我们在数据备份时,不需要创建表,或者不需要备份数据,只需要备份表结构,都可以通过对应的参数来实现。
B. 备份db01数据库中的表数据,不备份表结构(-t)
mysqldump -uroot -p1234 -t db01 > db01.sql
打开 db02.sql ,来查看备份的数据,只有insert语句,没有备份表结构。
C. 将db01数据库的表的表结构与数据分开备份(-T)
mysqldump -uroot -p1234 -T /root db01 score
执行上述指令,会出错,数据不能完成备份,原因是因为我们所指定的数据存放目录/root,MySQL认为是不安全的,需要存储在MySQL信任的目录下。那么,哪个目录才是MySQL信任的目录呢,可以查看一下系统变量 secure_file_priv 。执行结果如下:
上述的两个文件 score.sql 中记录的就是表结构文件,而 score.txt 就是表数据文件,但是需要注意表数据文件,并不是记录一条条的insert语句,而是按照一定的格式记录表结构中的数据。如下:
7.2.6 mysqlimport/source
1). mysqlimport
mysqlimport 是客户端数据导入工具,用来导入mysqldump 加 -T 参数后导出的文本文件。
语法 :
mysqlimport [options] db_name textfile1 [textfile2...]
示例 :
mysqlimport -uroot -p2143 test /tmp/city.txt
2). source
如果需要导入sql文件,可以使用mysql中的source 指令 :
语法 :
source /root/xxxxx.sql
相关文章
- C#开发的线程池和管理器 - 开源研究系列文章
- 值得学习的C/C++语言开源项目
- 雷军:关于企业、经营和产品,我的30条思考
- CVE-2021-21972-VMware vCenter漏洞学习
- 数据中心的黑科技——到底什么是NPO/CPO?
- 管理 - 我的闪存
- 投资 - 我的闪存
- 7 款殿堂级的开源 CMS(内容管理系统)
- C# 应用程序使用管理员身份打开运行
- 2、技术规范 - 技术管理系列文章
- 1、技术管理:开篇 - 技术管理系列文章
- 关于本书 - JavaScript指南
- 关于本书 - 电脑知识指南
- 会做产品分析的产品经理,能力都不会太差!这份分析框架,建议收藏!
- 公司管人 - 我的闪存
- 比Win11自带更好用?良心文件管理器Files App
- 项目经理可以考的5种证书
- 千兆到40万兆要啥有啥!Marvell发布业界最全网络产品
- 跟着我们的新指南学习开发 WebAssembly
- 天翼云盘直链管理平台-支持多账号、永久直链、分享目录