×

MySQL ndash mysqldump命令详解_mysqldump指令

前端技术网 前端技术网 发表于2023-12-23 22:30:39 浏览1163 评论0

抢沙发发表评论

一、mysql无法使用mysqldump命令

方法/步骤

开始——运行——输入cmd,确定

MySQL ndash mysqldump命令详解_mysqldump指令

进入dos命令行下,输入mysqldump

--help,可以先熟悉mysqldump的帮助信息

注意:

如果安装时配置了bin路径则可以直接输入mysqldump

--help命令

如果安装时没有配置了bin路径则需要切换到mysql安装目录下的bin目录下输入mysqldump

MySQL ndash mysqldump命令详解_mysqldump指令

--help命令

在帮助信息里可以看到命令的基本格式如下:

usage:

mysqldump

[options]

database

[tables]

or

mysqldump

[options]

--databases

[options]

db1

[db2

db3...]

or

mysqldump

[options]

--all-databases

[options]

备份或导出整个数据库

输入mysqldump

-uroot

-p

test

>

test.sql

回车后输入输入root的密码即可

命令解释:

mysqldump

-u

用户名

-p

数据库名

>

导出的文件名

这样打开我的电脑就可以在当前目录看到导出的文件了

备份或导出数据库中一个表

输入mysqldump

-uroot

-p

phpmyadmin

pma_bookmark

>

pma_bookmark.sql

回车后输入输入root的密码即可

命令解释:

mysqldump

-u

用户名

-p

数据库名

表名>

导出的文件名

这样就可以在当前目录看到导出的文件了。

就可以还原或导入到别的数据库服务器上了。

补充:

关于msyql其他命令怎么使用,可以点击作者名片,在经验列表中找到。

二、如何使用mysqldump命令备份mysql数据库

通用规律只有使用--all-databases(-A)会 ERROR 1356,那就看看他到底备份了什么东西。于是喊上同事一起 less看了下,上下扫了两眼。突然发现:1.备份 SQL文件里 DROP掉了 mysql.proc;2.后CREATE了一个新的 mysql.proc;3. LOCK TABLES和 UNLOCK TABLES中间居然没有备份 CREATE ROUTINE任何数据?这不就是相当于每次导入全备都给我一个没有任何 sys schema routines的全新 mysql.proc表?那这不就异常的尴尬?

---- Table structure for table `proc`--

---- Dumping data for table `proc`-

真相大白在官方文档【sys-schema-usage】官方文档明确的告诉我们不会备份 sys库。但在使用 mysqldump在执行--all-databases会清空 mysql.proc导致 sys无**常使用;这是一个 BUG,并且只存在于 MySQL 5.7.x!

1、mysql_upgrade install or upgrade sys schema

这个方案适用于 sys库已经因为 mysqldump导入而损坏的情况下使用。

注意:mysql_upgrade在修理 sys库的同时,还修理 mysql库和用户库表(期间加锁且速度一般),有极小可能会误伤;使用 mysql_upgrade的时候要加上--upgrade-system-tables,不然会扫描用户库表。

2、全备时同时备份 sys库

这个方案适用于需要还原的数据库,sys库也不太正常的情况下使用;在全备后额外再备份一份 sys库用于修复。

注意:不适用于做主从时使用它。

3、使用 databases全备

这个方案适用于所有场景的全备需求,100%安全。

4、使用 mysql-sys开源代码

如果你的数据库 sys全部中招了,又是生产库。那你只能用这个方法;

mysql-sys:https://github.com/mysql/mysql-sys

中记录了 sys库的创建语句将文件下载到本地,然后根据数据库版本,执行以下命令即可。

关于本次MySQL ndash mysqldump命令详解_mysqldump指令和如何使用mysqldump命令备份mysql数据库的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。