备份mysql数据库的时候,备份数据库
本文内容列表:
- 1.如何使用mysqldump命令备份mysql数据库
- 2.MySQL备份与恢复、非常规备份、全量备份、增量备份
- 3. 如何备份整个mysql数据库
- 4.如何备份和恢复mysql数据库
- 5.如何备份MYSQL数据库?
如何使用mysqldump命令备份mysql数据库
作为一般规则,仅使用 --all-databases (-A) 会导致错误 1356,所以让我们看看它备份了什么。所以我才叫同事少一起看,上下看。我突然发现:1.在SQL备份文件中DROP mysql.proc; 2.然后创建新的mysql.proc; 3. LOCK TABLES 和 UNLOCK TABLES 之间没有备份 CREATE ROUTINE 数据吗?这不是与每次导入时给我一个全新的 mysql.proc 表而没有任何系统模式例程一样吗?这不是非常尴尬吗?
----`proc`表的表结构--
----`proc`表的数据转储-
真相在官方文档【sys-schema-usage】中揭晓官方文档明确告诉我们系统库不会被备份。但是当你使用mysqldump并运行--all-databases时,mysql.proc将被清除,sys将不再正常使用;这是一个BUG,仅存在于MySQL 5.7.x中!
1。 mysql_upgrade 安装或升级系统架构
此解决方法适合在 sys 库因 mysqldump 导入而损坏时使用。
注:mysql_upgrade在修复sys库的同时,也修复了mysql库和用户库表(期间锁定,速度一般)。意外损坏的可能性很小;使用mysql_upgrade时添加--upgrade-system-tables,否则将扫描用户数据库表。
2、全量备份时同时备份系统库
此方案适合需要恢复的数据库,可以在系统库不正常时使用;完整备份后,备份系统库的附加副本以进行修复。
注意:不适合用作主站和从站。
3。使用数据库进行全量备份
此方案适合全场景全量备份需求,100%安全。
4。使用开源 mysql-sys
如果数据库中的所有系统都被感染,它又会成为生产数据库。那么就只能用这个方法了;
mysql-sys:创建sys库的语句写在
中。将文件下载到本地,然后根据数据库版本执行以下命令。

MySQL备份与恢复、非常规备份、全量备份、增量备份
1:官方百万级测试数据库:
官方github测试数据库网址:
下载到目录,解压后运行命令:
2:创建一个简单的测试数据库:
一个快速随机生成测试语言的网站:
选择要生成的sql和字段,然后点击生成!创造。
只需将生成的语句输入MySQL即可。
3:测试备份和恢复时使用的命令
删除数据库并运行测试(先备份)
验证恢复后数据库表数据是否完整。
使用复制整个数据存储目录
1:查看数据库的数据存储位置
有两种方式:
1):使用命令 show 数据库中的“datadir”等变量; check
2):查看配置文件中,datadir目录配置为可查看。如果没有配置,默认设置为 /var/lib/mysql/ 位置
Linux 下查看配置文件
2:复制目录下的目录或数据库名称
3:直接复制文件夹恢复时到数据库目录但是
mysqldump也可以称为全备份。
--databases 参数与 -B 相同,是一个库,您也可以省略。
1. 备份命令 mysqldump 格式
格式:mysqldump -h 主机名 -P 端口 -u 用户名 -p 密码 数据库名 文件名.sql
备份 testDatabase 数据库
2. 删除表备份 MySQL 数据库格式
MySQL备份数据库采用deleted-tables格式,允许备份覆盖现有数据库,而无需手动删除原始数据库。 ? B
5. 同时备份多个 MySQL 数据库
同时备份 testDatabase 和员工数据库
6. 备份服务器上的所有数据库
--all- 数据库参数同-A
7. MySQL数据库恢复命令
1)不指定数据名恢复。默认创建原始数据库名称,并恢复所有数据库。
2) 指定要恢复的数据的名称。要恢复特定的单个数据库,您必须首先在该数据库中创建名称为 testDatabase 的数据库。
3)恢复压缩后的MySQL数据库
4)进入数据库,使用源导入
增量备份是备份数据库的bin-log,增量备份是基于整个数据库进行的体积。增量备份主要依赖mysql记录的bin-log。
1:检查bin-log是否开启
进入mysql,输入view命令。
如下图所示为打开状态,日志文件以binlog.00001格式保存在/var/lib/mysql/下。
如果没有启用,需要在配置文件中进行配置
2:查看当前使用的日志文件 bin-log
输入 mysql 查看命令。
如下图,当前使用的是binlog.000022文件,所有操作都记录在该文件中。
查看当前测试数据库的myTable数据如下,
3:刷新日志,使用新的日志文件(备份)
在命令终端执行命令
。日志文件从 binlog.000022 更改为 binlog.000023
目前相当于成功的备份。备份文件为最后一个日志文件binlog.000022。
4:删除数量并恢复日志数据
1)删除ABC行
查询没有ABC行。
2) 恢复数据行ABC
关闭mysql,在命令终端使用mysqlbinlog命令恢复binlog日志status.000022。
进入数据库再次查看数据。 ABC已重建。
增量备份完成。
如何备份整个mysql数据库
1。首先,打开mysql数据库软件,进入软件主界面。
2。然后在左侧的树中打开您的数据库。
3。然后单击要备份的数据库的名称。
4。图为打开数据库后的界面。
5。然后您需要单击转储 sql 文件的选项。
6。然后需要打开,选择保存文件的路径,然后选择保存。
7。单击“保存”,将sql格式的数据库文件备份到该路径。
如何备份和恢复mysql数据库
备份数据库
使用mysqldump命令备份数据库
恢复数据库
1.使用mysql命令恢复数据库
将game_backup.sql恢复到游戏数据库:
2.使用原生命令恢复数据库
如果数据库太大,建议使用原生命令
如何备份MYSQL数据库?
定期备份可以大大减少我们数据库崩溃带来的损失。 MySQL 中的数据备份有两种方法。一种是使用mysqldump,另一种是使用mysqlhotcopy、cp、tar或cpio等打包器直接复制数据库文件。 mysqldump 备份数据库的速度很慢,但它创建的文本文件很容易下载。使用mysqlhotcopy之类的程序进行备份速度很快,因为它直接作用于系统文件,并且需要在备份前后手动一致性数据库数据。
使用mysqldump备份数据库实际上是将数据库转储到一系列CREATE TABLE和INSERT语句中。通过这些语句我们可以重新生成数据库。 mysqldump的使用方法如下:
% mysqldump --opt testdb | gzip /data/backup/testdb.bak
#--opt 选项将优化转储过程,创建的备份将更小。管道操作会进行数据压缩
% mysqldump --opt testdb mytable1,mytable2 | gzip /data/backup/testdb_mytable.bak
#可以为数据库添加数据表名称,以仅导出指定的数据表。多个数据表可以用逗号
分隔——opt选项也可以激活--add-drop-table选项,该选项将被添加到备份文件中。在每个 CREATE TABLE 之前添加 DROP TABLE IF EXISTS 语句。这样可以轻松更新数据表,而不会出现“数据表已存在”错误。
您还可以使用mysqldump命令将数据库直接传输到另一台服务器,而无需生成备份副本。重复执行会定期更新远程数据库。
% mysqladmin -h 远程主机创建 testdb
% mysqldump --opt testdb | mysql -h remote_host testdb
另外,还可以通过ssh远程调用服务器上的程序,如:
% ssh remote_host mysqladmin create testdb
% mysqldump --opt testdb | ssh remote_host mysql testdb
通过直接复制系统文件的方式备份数据库。备份时,请确保没有人更改数据库。为此,最好停止服务器。如果无法关闭,请尝试以只读模式锁定相应的数据表。示例如下:
% cp -r db /backup/db #将db数据库备份到/backup/db目录下
% cp table_name.* /backup/db #只备份数据表table_name
% scp -r db remotehot:/usr/local/mysql/data #使用scp将数据库直接复制到远程服务器设备上,或者所有复制的数据表都是可传输类型的数据表。
使用mysqlhotcopy工具,这是一个Perl DBI脚本,可以在不停止服务器的情况下备份数据库。它的主要优点是:
直接复制文件,因此比mysqldump更快。
可自动完成数据锁定,备份时无需停止服务器。
可以刷新日志,以便同步备份和日志文件的检查点。
以下是使用该工具的示例:
% mysqlhotcopy db /bakcup/ #将db数据库备份到backup/db目录下,db目录会自动创建
使用BACKUP TABLE语句进行备份。该语句首次出现在MySQL 3.23.25版本中,仅适用于MyISAM数据表。用法如下:
mysql BACKUP TABLE mytable TO '/backup/db'; #将数据表mytable备份到目录/backup/db
要执行此语句,您必须对这些表具有FILE和SELECT权限,备份目录也必须可从服务器写入。执行该语句时,首先将内存中的数据写入磁盘,然后将各个数据表的.frm(表结构定义文件)和.MYD(数据)文件从数据目录复制到备份目录。它不会复制 .MYI(索引)文件,因为它可以用其他两个文件重建。备份BACKUP TABLE语句时,数据表按顺序锁定。同时备份多个数据表时,数据表可能会发生变化。因此,当备份0完成后,备份文件中的数据和当前数据表中的数据可能会有所不同。为了解决这个差异,我们可以将数据表锁定为只读模式,并在备份完成后解锁。例如:
mysql 锁定表 tb1 读,tb2 读;
mysql 备份表 tb1,tb2 到 'backup/db';
mysql 解锁表
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网
