🚀MYSQL数据库备份与恢复

备份

环境:

Centos7、MySQL5.7+

ps:图片是后补充的,只是展示用。

参数说明:

  • -e:可以执行各种sql的(创建,删除,增,删,改、查)等各种操作
  • -u:指定连接的用户名
  • -p:指定连接的密码
  • -P:指定端口
  • -h:远端服务器IP
  • mysqldump 
    • -d:备份库结构
    • -t:备份库数据
    • -B:备份时包含库结构
    • --all-databases:导出所有数据库
    • --skip-lock-tables:跳过锁定表的操作,以避免备份过程中阻止其他数据库操作。
    • --ignore-table:指定需要排除的表[数据库.表名]
    • --column-statistics=0:客户端版本(8+)大于服务端版本(5.+),需指定此参数
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| confluence         |
| mysql              |
| performance_schema |
| sonar              |
| sys                |
| wgcloud            |
+--------------------+
mysql> show tables;
+-------------------+
| Tables_in_wgcloud |
+-------------------+
| ACCOUNT_INFO      |
| APP_INFO          |
| APP_STATE         |
| CPU_STATE         |
| CPU_TEMPERATURES  |
| CUSTOM_INFO       |
| CUSTOM_STATE      |
| DB_INFO           |
| DB_TABLE          |
| DB_TABLE_COUNT    |
| DCE_INFO          |
| DCE_STATE         |
| DESK_IO           |
| DISK_SMART        |
| DISK_STATE        |
| DOCKER_INFO       |
| DOCKER_STATE      |
| EQUIPMENT         |
| FILE_SAFE         |
| FILE_WARN         |
| FILE_WARN_STATE   |
| FTP_INFO          |
| HEATH_MONITOR     |
| HEATH_STATE       |
| HOST_DISK_PER     |
| HOST_GROUP        |
| INTRUSION_INFO    |
| LOG_INFO          |
| MAIL_SET          |
| MEM_STATE         |
| NETIO_STATE       |
| PORT_INFO         |
| REPORT_INFO       |
| REPORT_INSTANCE   |
| SHELL_INFO        |
| SHELL_STATE       |
| SNMP_INFO         |
| SNMP_STATE        |
| SYSTEM_INFO       |
| SYS_LOAD_STATE    |
| TCP_STATE         |
+-------------------+
41 rows in set (0.00 sec)

1、备份全部数据库的数据和结构(包含创库、创表语句以及表数据)【包含系统库】

mysqldump -uroot -p密码 -A > /data/mysqlDump/mydb_1.sql

2、备份全部数据库的库结构,表结构(加 -d 参数)【包含系统库(mysql库)】

mysqldump -uroot -p密码 -A -d > /data/mysqlDump/mydb_2.sql

3、备份单个库的所有表结构【仅包含所有表结构,不包含表数据】

mysqldump -uroot -p密码 -d wgcloud > /data/mysqlDump/mydb_3.sql

4、备份数据库所有表结构及数据【不包含创库语句】 

mysqldump -uroot -p密码 wgcloud > /data/mysqlDump/mydb_4.sql

5、备份库中的表(包含数据)【多张表用空格分割即可】

mysqldump -uroot -p密码 wgcloud LOG_INFO PORT_INFO > /data/mysqlDump/mydb_5.sql

6、备份库中的表结构(不包含表数据)【多张表用空格分割即可】

mysqldump -uroot -p密码 -d wgcloud LOG_INFO PORT_INFO > /data/mysqlDump/mydb_6.sql

7、备份数据库所有表以及表数据(不包含创库语句)【排除指定表,多个表写多个--ignore-table参数】

mysqldump -uroot -p密码 wgcloud --ignore-table wgcloud.LOG_INFO --ignore-table wgcloud.PORT_INFO > /data/mysqlDump/mydb_7.sql

8、备份单个数据库,包含创建数据库脚本、表结构、表数据【和--database参数一样】

多个库用空格分割

mysqldump -uroot -p密码 -B wgcloud > /data/mysqlDump/mydb_8.sql

9、备份所有数据库以及数据【系统库只包含(mysql)】

mysqldump -uroot -p密码 --all-databases > /data/mysqlDump/mydb_9.sql

10、备份多个数据库(包含创库、创表语句以及表数据)【和-B参数一样】

多个库用空格分割

mysqldump -uroot -p密码 --databases wgcloud sonar > /data/mysqlDump/mydb_10.sql

11、备份所有数据库以及数据【不包含系统库】

mysql中只有--ignore-table参数没有--ignore-database参数,所以只能通过其他方式进行操作

mysql -e "show databases;" -h IP地址  -uroot -p密码 | grep -Ev "Database|information_schema|mysql|test|performance_schema" | xargs mysqldump --skip-lock-tables -h IP地址  -uroot -p密码 --databases > /mysql_dump_2023-04-19.sql

 恢复

方式一:SOURCE命令:

  • 语法: SOURCE /path/to/mydatabase.sql
  • 用途: SOURCE命令通常在MySQL命令行中使用,用于执行SQL脚本文件。该命令是在MySQL Shell中直接执行的,而不是在操作系统的命令行中执行。
  • 适用场景: 适用于交互式MySQL Shell环境,可以在MySQL Shell中逐行执行SQL语句,也可以执行整个SQL脚本文件。
mysql> SOURCE /path/to/mydatabase.sql;

方式二:通过重定向 < 操作符:

  • 语法: mysql -u username -p mydatabase < /path/to/mydatabase.sql
  • 用途: 这种方式是通过操作系统的命令行来执行,使用mysql命令行工具。通过重定向 < 操作符,将SQL脚本文件的内容传递给mysql命令行工具。
  • 适用场景: 适用于非交互式的批处理或自动化脚本。这种方式更适合在命令行中执行,而不需要交互式输入。
mysql -u username -p mydatabase < /path/to/mydatabase.sql

 

posted @ 2023-04-19 10:12  Java小白的搬砖路  阅读(134)  评论(0编辑  收藏  举报