• MySQL学习笔记23


    逻辑备份:

    1、回顾什么是逻辑备份?

    逻辑备份就是把数据库、数据表或者数据进行导出,导出到一个文本文件中。

    2、逻辑备份工具:

    mysqldump:提供全库级、数据库级别以及表级别的数据备份。

    mysqldump+binlog:二进制日志实现增量备份。

    3、逻辑的导出导入:

    导出(数据备份):

    无论是什么存储引擎,以下方式本身是一种数据导出的方法,同时可以用来辅助备份,它可以对一个表的其中一列或者某几列做备份。备份的是==数据记录。==

    案例:把tb_student数据表中的数据记录进行逻辑导出。

     出现以上问题的主要原因在于我们没有指定MySQL逻辑导出时指定的路径。

    我们将配置文件进行更新,并重启mysql。

     还需要更新下权限:

    最后我们再执行导出操作:

    1. mysql> select * into outfile '/tmp/sqlbak/tb_student.txt' from db_itheima.tb_student;
    2. Query OK, 5 rows affected (0.00 sec)

     说明:备份的是数据表中的记录。

    1. [root@mysql-server sqlbak]# ll
    2. total 880
    3. -rw-r--r-- 1 root root 890067 Sep 29 07:04 all.sql
    4. -rw-r----- 1 root root 915 Sep 29 07:14 binlog.000005
    5. -rw-rw-rw- 1 mysql mysql 112 Sep 29 11:37 tb_student.txt
    6. [root@mysql-server sqlbak]# cat tb_student.txt
    7. 1 刘备 33 male java
    8. 2 关羽 32 male yunwei
    9. 4 貂蝉 18 female ui
    10. 5 大乔 18 female ui
    11. 6 小乔 16 female ui

    把数据逻辑进行导出,导出的结果是一个有规则的文本文件。

    4、逻辑导入操作:

    1. mysql> use db_itheima;
    2. Reading table information for completion of table and column names
    3. You can turn off this feature to get a quicker startup with -A
    4. Database changed
    5. mysql>
    6. mysql> drop table tb_student;
    7. Query OK, 0 rows affected (0.00 sec)
    8. mysql> create table tb_student (
    9. -> id int not null auto_increment,
    10. -> name varchar(20),
    11. -> age tinyint unsigned default 0,
    12. -> gender enum('male','female'),
    13. -> subject enum('ui','java','yunwei','python'),
    14. -> primary key(id)
    15. -> )engine=innodb default charset=utf8;
    16. Query OK, 0 rows affected (0.01 sec)
    17. mysql> load data local infile '/tmp/sqlbak/tb_student.txt' into table tb_student;
    18. Query OK, 5 rows affected (0.00 sec)
    19. Records: 5 Deleted: 0 Skipped: 0 Warnings: 0

    local data local infile的方法,该方法要求在编译数据库编译的时候加上--enable-local-infile参数才行。

    也可以使用方法:

    mysqlimport  dbname /path/file    # 要求:导出的文件必须和数据表名称完全一致。

    典型的应用场景:

    可以把一些有规则的文本文件导入到数据库中。

    案例:把/etc/passwd文件中的数据导入到password数据库中。

    第一步:创建一个password数据库,password是mysql保留关键字,建议使用两个反撇号括起来。

    1. use db_itheima;
    2. create table `password` (
    3. `uname` varchar(50) default null,
    4. `pass` char(2) default null,
    5. `uid` int(11) default null,
    6. `gid` int(11) default null,
    7. `comment` varchar(255) default null,
    8. `home` varchar(50) default null,
    9. `shell` varchar(50) default null
    10. )engine=innodb default charset=utf8mb4;

    第二步:把/etc/passwd文件拷贝到/tmp/sqlbak目录下,起名叫password.txt。

    [root@mysql-server ~]# cp /etc/passwd /tmp/sqlbak/password.txt
    

    第三步:使用mysqlimport把password.txt文件中的内容写入到数据表。

    1. [root@mysql-server sqlbak]# mysqlimport db_itheima --fields-terminated-by=':' --lines-terminated-by ='\n' /tmp/sqlbak/password.txt -p
    2. Enter password:
    3. db_itheima.password: Records: 21 Deleted: 0 Skipped: 0 Warnings: 0
    4. [root@mysql-server sqlbak]# mysql -e "select * from db_itheima.password;" -p
    5. Enter password:
    6. +-----------------+------+------+------+-----------------------------------------------------------------+--------------------+----------------+
    7. | uname | pass | uid | gid | comment | home | shell |
    8. +-----------------+------+------+------+-----------------------------------------------------------------+--------------------+----------------+
    9. | root | x | 0 | 0 | root | /root | /bin/bash |
    10. | bin | x | 1 | 1 | bin | /bin | /sbin/nologin |
    11. | daemon | x | 2 | 2 | daemon | /sbin | /sbin/nologin |
    12. | adm | x | 3 | 4 | adm | /var/adm | /sbin/nologin |
    13. | lp | x | 4 | 7 | lp | /var/spool/lpd | /sbin/nologin |
    14. | sync | x | 5 | 0 | sync | /sbin | /bin/sync |
    15. | shutdown | x | 6 | 0 | shutdown | /sbin | /sbin/shutdown |
    16. | halt | x | 7 | 0 | halt | /sbin | /sbin/halt |
    17. | mail | x | 8 | 12 | mail | /var/spool/mail | /sbin/nologin |
    18. | operator | x | 11 | 0 | operator | /root | /sbin/nologin |
    19. | games | x | 12 | 100 | games | /usr/games | /sbin/nologin |
    20. | ftp | x | 14 | 50 | FTP User | /var/ftp | /sbin/nologin |
    21. | nobody | x | 99 | 99 | Nobody | / | /sbin/nologin |
    22. | systemd-network | x | 192 | 192 | systemd Network Management | / | /sbin/nologin |
    23. | dbus | x | 81 | 81 | System message bus | / | /sbin/nologin |
    24. | polkitd | x | 999 | 998 | User for polkitd | / | /sbin/nologin |
    25. | sshd | x | 74 | 74 | Privilege-separated SSH | /var/empty/sshd | /sbin/nologin |
    26. | postfix | x | 89 | 89 | | /var/spool/postfix | /sbin/nologin |
    27. | ntp | x | 38 | 38 | | /etc/ntp | /sbin/nologin |
    28. | tss | x | 59 | 59 | Account used by the trousers package to sandbox the tcsd daemon | /dev/null | /sbin/nologin |
    29. | mysql | x | 998 | 996 | | /home/mysql | /sbin/nologin |
    30. +-----------------+------+------+------+-----------------------------------------------------------------+--------------------+----------------+
    31. [root@mysql-server sqlbak]#

    使用navicat工具进行数据的导出:mysql支持远程连接。

    借助一些mysql的管理软件来进行数据的导出导入。

    根据向导一步一步地导出:

    导出结果如下:

     

     

    插入数据:

     

     

     

     这个是要注意的。

    然后再进行导入操作:

     

    数据表的备份和还原:

    导出向导只能备份数据信息。

    数据表的备份。

    数据库的备份和还原。

     

    转储SQL文件。

     

  • 相关阅读:
    [Redis] redis-cli 命令总结
    dataset和dataloader
    java计算机毕业设计springboot+vue南天在线求助系统
    提高采购效率,采购管理的五大原则及实现方法
    实战回忆录从webshell开始突破边界
    如何有效记录日常开支
    [Java、Android面试]_19_单例模式(高频问题)
    Hack The Box-Monitored
    刷题记录:牛客NC50940Running Median
    ESP32设备驱动-TFT_eSPI显示中文
  • 原文地址:https://blog.csdn.net/chang_chunhua/article/details/133413284