利用mysqldump导出数据库详解教程 – MySQL大数据库导出命令必备

利用mysqldump导出数据库详解教程 – MySQL大数据库导出命令必备

我们在维护服务器的时候备份数据库用的什么方式?我们很多朋友应该是用的phpmyadmin直接客户端界面导出数据库。这个方法对于小数据库是没有问题的,如果数据库较大,达到几百兆的时候你导出来的数据库可能有不完整,即便完整的话你无法导入有可能无法导入超时。

当然,我们还可以利用其他的面板自带的数据库备份工具。但是有些时候我们没有这些环境如果导出数据库呢?这里,我们可以介绍用到mysqldump命令,是比较好用的数据库备份导出命令。

我们今天这篇文章就一起学习mysqldump的数据库备份命令。

1、导出单个数据库

mysqldump -u user_name -p db_name > dump-$(date +"%Y%m%d").sql

各项参数:

-u 用于指定数据库用户名,通常是 root,需要具备对目标数据库的读写权限。

-p 指定数据库账号密码。基于安全考量,一般不指定密码,运行命令后以交互方式输入。若要指定密码,在 -p 后输入密码(注意是紧挨着没有空格)。

db_name 备份数据库名称,这种写法不能同时备份多个数据库。如果用空格写了多个名称,则会被视为备份数据库下的表(第一名称是数据库,之后名称表示该数据库下的表名)。

dump-$(date +”%Y%m%d”).sql 将数据库导出到文件,这里文件名加了时间戳。

2、导出多个数据库

导出多个数据库用 –databases 参数指定,语法如下。

mysqldump -u user_name -p --databases db1 db2 db3 > dump-$(date +"%Y%m%d").sql

当带了 –databases 和下面介绍的 –all-databases 参数,在转储输出前会写入 CREATE DATABASE 和 USE 语句。这样在恢复数据时,如果没有同名数据库,它会先创建数据库。并在恢复各个数据库时,通过 USE 语句设置默认数据库,以便将数据导入到同一数据库中。

3、导出所有数据库

备份所有数据库使用 –all-databases 参数。

mysqldump -u user_name -p --all-databases > dump-$(date +"%Y%m%d").sql

4、添加定时备份数据库任务

0 0 1 * * /usr/bin/mysqldump --defaults-extra-file=/root/.my.cnf --user=root db_name > /root/dump-$(date +"%Y%m%d").sql

这将每月备份一次数据库,文件存储在 /root 目录下。

5、恢复复原数据库

导入恢复单个数据库:

mysql -u user_name -p db_name < dump-backup.sql

导入恢复单个数据表:

mysql -u user_name -p db_name < dump-table-backup.sql

导入单个数据库或数据表时,目标数据库必须是已存在。否则需要先创建数据库,创建语法如下。

mysqladmin -u user_name -p create db_name

当导入使用 –databases 或 –all-databases 参数导出的数据库文件,则不需要指定目标数据库,它会自动创建数据库。

mysql -u user_name -p < dump-full-backup.sql
-

本文作者:-

英雄所见略同

发表回复

您的电子邮箱地址不会被公开。

深色 浅色