mysql之数据备份

作者: 每天进步一点点变成更好的自己 | 来源:发表于2022-04-01 08:03 被阅读0次

    数据备份主要有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
    

    相关文章

      网友评论

        本文标题:mysql之数据备份

        本文链接:https://www.haomeiwen.com/subject/ztyojrtx.html