mysql之数据备份
数据备份主要有2种:物理备份和逻辑备份。
物理备份:通过把数据文件复制出来,达到备份的目的,需要收费。
逻辑备份:把描述数据库结构和内容的信息保存起来,达到备份的目的,免费的。
数据备份的工具:mysqldump,以及用命令行客户端工具mysql和sql语句 source进行数据恢复的方法。
备份数据库中的表:mysqldump -h 服务器 -u 用户 -p 密码 数据库名称 [表名称 … ] > 备份文件名称
备份整个数据库:mysqldump -h 服务器 -u 用户 -p 密码 --databases 数据库名称 … > 备份文件名
备份整个数据库服务器:mysqldump -h 服务器 -u 用户 -p 密码 --all-databases > 备份文件名
使用mysql命令行客户端工具 进行数据恢复:H:\>mysql -u root -p demo < test.sql
使用source语句进行数据恢复:SOURCE 备份文件名
1、如何进行数据备份
数据备份工具:mysqldump,有3中模式:
1、备份数据库中的表
2、备份整个数据库
3、备份整个数据库服务器
1、备份数据库中的表
语法:mysqldump -h 服务器 -u 用户 -p 密码 数据库名称 [表名称 … ] > 备份文件名称
- “-h”后面跟的服务器名称,如果省略,默认是本机“localhost”。
- “-u”后面跟的是用户名
- “-p”后面跟的是密码,如果省略,执行的时候系统会提示录入密码。
--备份本机数据库服务器上demo数据库中的商品信息表和会员信息表的所有信息
H:\>mysqldump -u root -p demo goodsmaster membermaster > test.sql
Enter password: *****
2、备份整个数据库
语法:mysqldump -h 服务器 -u 用户 -p 密码 --databases 数据库名称 … > 备份文件名
--备份本机数据库服务器中的2个数据库demo和demo1进行备份
H:\>mysqldump -u root -p --databases demo demo1 > test1.sql
Enter password: *****
3、备份整个数据库服务器
语法:mysqldump -h 服务器 -u 用户 -p 密码 --all-databases > 备份文件名
--备份整个数据库到test2.sql中,包括系统数据库和用户创建的数据库中的库结构信息、表结构信息和表里的数据。
H:\>mysqldump -u root -p --all-databases > test2.sql
Enter password: *****
2、如何进行数据恢复
数据恢复方法有2种:
- 1、使用mysql命令行客户端工具 进行数据恢复
- 2、使用source语句进行数据恢复
1、使用mysql命令行客户端工具 进行数据恢复
语法:H:\>mysql -u root -p demo < test.sql
Enter password: *****
mysql 是一个命令行客户端工具,可以与 MySQL 服务器之间进行连接,执行 SQL 语句。
- “-u”后面跟的是用户。
- “-p”后面跟的是密码。
2、使用source语句进行数据恢复
语法:SOURCE 备份文件名
mysql> USE demo;
Database changed
mysql> SOURCE H:\\test.sql
Query OK, 0 rows affected (0.00 sec)
3、如何导出和导入表里的数据
1、导出表里的数据
使用“SELECT … INTO OUTFILE”语句导出数据表的语法结构是:
SELECT 字段列表 INTO OUTFILE 文件名称 FIELDS TERMINATED BY 字符 LINES TERMINATED BY 字符 FROM 表名;
- INTO OUTFILE 文件名称,表示查询的结果保存到文件名称指定的文件中;
- FIELDS TERMINATED BY 字符,表示列之间的分隔符是“字符”;
- LINES TERMINATED BY 字符,表示行之间的分隔符是“字符”。
mysql.ini文件中的参数,告诉你只能导出到如下路径:
# Secure File Priv.
secure-file-priv="C:/ProgramData/MySQL/MySQL Server 8.0/Uploads"
mysql> SELECT * INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/goodsmaster.txt'
-> FIELDS TERMINATED BY ','
-> LINES TERMINATED BY '\n'
-> FROM demo.goodsmaster;
Query OK, 3 rows affected (0.00 sec)
2、导入表里的数据
“LOAD DATA”是与“SELECT … INTO OUTFILE”相对应的数据导入语句。语句结构是:
LOAD DATA INFILE 文件名 INTO TABLE 表名 FIELDS TERMINATED BY 字符 LINES TERMINATED BY 字符;
--删除商品信息表中的数据
mysql> DELETE FROM demo.goodsmaster
-> WHERE itemnumber>0;
Query OK, 3 rows affected (0.03 sec)
--导入数据
mysql> LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/goodsmaster.txt'
-> INTO TABLE demo.goodsmaster
-> FIELDS TERMINATED BY ','
-> LINES TERMINATED BY '\n';
Query OK, 3 rows affected (0.02 sec)
Records: 3 Deleted: 0 Skipped: 0 Warnings: 0