注: 部分概念介绍来源于网络

一、使用Date Export功能备份数据库

Dump Structure and Data:同时备份表结构和数据;勾选Objects to Export下三个选项,备份存储过程、函数、事件和触发器。
        Export to Self-Contained File:备份整库到一个SQL文件中。

 

 二、异常处理

内容大意为:

     MySQL工作台,mysqldump版本不匹配,mysqldump.exe的版本为8.0.26,但要转储的MySQLServer的版本为5.7.22。

        由于mysqldump的版本与服务器不同,因此某些功能的备份可能不正确。

        建议您将本地MySQL客户端程序(包括mysqldump)升级或降级至与targetserver相同或更新的版本。

        然后必须在下面的设置中配置工具的路径

        Preferences

        -> Administrator

        -> Path to mysqldumpTool:

4.1、按照提示去选择本地mysqldump

 

 

 

 4.2、选择后再次点击Start Export即可导出

 

 转载:

https://blog.csdn.net/mengshuaiq/article/details/119919344

三、使用Date Import功能,还原数据库

 

        选择Import from Self-Contained File和目标数据库进行还原。

四、使用Workbench导入SQL数据

(1)在菜单栏中选择 File → Open SQL Script... 选择要导入的 SQL 文件,在弹出的对话框中选择需要导入的 SQL 文件;

(2)在打开的 SQL 文件的头部,写入需要导入的数据库名,本教程将导入 my_mysql 这个数据库。 所以在文件中写入 USE my_mysql;

(3)点击黄色闪电 icon 执行代码;

(4)将这几条数据写入数据库对应的 my_table 表中;

五、数据库备份的分类

5.1、物理备份

(1)指对数据库操作系统的物理文件(如数据文件、日志文件等)的备份;

(2)物理备份是磁盘块为基本单位将数据从主机复制到备机;

(3)物理备份又可以分为脱机备份(冷备份)和联机备份(热备份);

(4)冷备份(脱机备份):在关闭数据库时进行的备份操作,能够较好地保证数据库的完整性;

(5)热备份(联机备份):在数据库运行状态中进行操作,这种备份方法依赖于数据库的日志文件;

5.2、逻辑备份

(1)逻辑备份是以文件为基本单位将数据从主机复制到备机;

(2)指对数据库逻辑组件(如表等数据库对象)的备份;

(3)从数据库的备份策略角度来看,备份又可分为完全备份、差异备份和增量备份;

5.3、完全备份

        每次对数据进行完整的备份,可以备份整个数据库,包含用户表、系统表、索引、视图和存储过程等所有数据库对象,但它需要花费更多的时间和空间,所以,做一次完全备份的周期要长些。

5.4、差异备份

        备份那些自从上次完全备份之后被修改过的文件,即只备份数据库部分的内容,它比最初的完全备份小,因为只包含自上次完全备份以来所改变的数据库,它的优点是存储和恢复速度快。

5.5、增量备份

        只有那些在上次完全备份或者增量备份后被修改的文件才会被备份。

5.6、备份方式比较

六、MySQL数据库的备份可以采用两种方式

        因为数据库实际上就是文件,直接打包数据库文件夹,或者是使用专用备份工具 mysqldump 都可以进行备份工作。

6.1、使用 tar 打包文件夹备份

        MySQL 的数据库文件默认都是保存在安全目录的 data 文件夹下,可以直接保存 data 文件夹,因为占用空间较大,可以使用data 打包压缩进行保存。

#数据库文件很大,可以使用压缩率较大的xz格式压缩,首选需要安装xz压缩格式工具
yum -y install xz

#对数据库文件夹进行打包操作
tar Jcvf /opt/mysql-$(date +%F).tar.xz /usr/local/mysql/data/

#查看打包命令是否运行成功,已经生成了备份文件
ls /opt

#对比打包前后的文件大小,可以看到压缩的备份文件所占用空间很小
du -sh /opt/mysql-2021-10-26.tar.xz

#如果数据库文件损坏数据丢失,可以解压缩文件,相当于数据恢复
tar -Jxvf /opt/mysql-2021-10-26.tar.xz -C /usr/local/mysql/data/systemctl restart mysql

6.2、使用 mysqldump 工具备份

        mysqldump是客户端常用逻辑备份程序,能够产生一组被执行以后再现原始数据库对象定义和表数据的SQL语句。它可以转储一个到多个MySQL数据库,对其进行备份或传输到远程SQL服务器。mysqldump更为通用,因为它可以备份各种表。

        使用 mysqldump 可以更加灵活地控制备份的内容,比如某几个表或库都可以单独备份。

        mysqlhotcopy仅适用于某些存储引擎(MyISAM和ARCHIVE)。

#使用 mysqldump 对某些表进行完全备份,命令格式如下:
mysqldump -u[用户名] -p[密码] [选项] [数据库名] [数据表名] > /备份路径/备份文件名.sql
mysqldump -h[主机名] -P[端口] -u[用户名] -p[密码] [–database] [数据库名] > /备份路径/备份文件名.sql
#注:直接cmd执行该指令即可,不需要先mysql -u root -p链接数据库
#导出的为数据库脚本文件

1、对库my_mysql中的表my_table进行备份至/opt/目录下
mysqldump -uroot -p[密码] my_mysql my_table > /opt/test.sql

2、对库my_mysql进行完全备份
mysqldump -uroot -p[密码] my_mysql > /opt/test01.sql

3、对多个库进行完全备份
mysqldump -uroot -p[密码] --databases my_mysql my_mysq01 > /opt/test02.sql

4、对所有库进行完全备份
mysqldump -uroot -p[密码] --all-databases > /opt/test03.sql

5、直接备份表结构
mysqldump -uroot -p[密码] -d my_mysql my_table > /opt/test04.sql

6、备份MySQL数据库的命令
mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql
(例:mysqldump -h 122.51.176.153 -uwang -p1992S@ sw_account --default-character-set=gbk --opt -Q -R --skip-lock-tables>testbackup.sql)

7、备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql

8、直接将MySQL数据库压缩备份
mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz

9、备份MySQL数据库某个(些)表
mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql

10、同时备份多个MySQL数据库
mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql

11、仅备份数据库结构
mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql

12、备份服务器上所有数据库
mysqldump –all-databases > allbackupfile.sql

七、数据库还原有三种方式:source命令、mysql、gunzip命令

7.1、source 命令

#恢复数据表
mysql -uroot -p123456
use my_mysql;
show tables;
drop table my_table;
source /opt/test.sql
show tables;
select * from my_table;

#恢复数据库
mysql -uroot -p123456
show databases;
drop database my_mysql;
show databases;
source /opt/test01.sql
#注意!选项得加“--databases”才是完整的备份,不然会恢复不了

7.2、mysql
mysql -hhostname -uusername -ppassword databasename < backupfile.sql

7.3、gunzip
gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐