云网牛站
所在位置:首页 > Linux云数据库 > 从Linux命令行备份和还原单个、多个或所有MySQL/MariaDB数据库

从Linux命令行备份和还原单个、多个或所有MySQL/MariaDB数据库

2020-02-19 11:35:12作者:王优明稿源:云网牛站

大多数CMS网站(例如wordpress)都使用MySQL数据库作为后端,Linux管理员应注意MySQL的备份和还原命令。下面的示例向我们展示了如何使用mysqldump命令进行备份和还原MySQL/MariaDB数据库。mysqldump是备份mysql数据库的有效方法之一,它会创建一个扩展名为*.sql的备份文件,该文件可以轻松还原。安装数据库参考:为CentOS 8操作系统安装MySQL的方法,以安装MySQL 8为例CentOS 8上安装MariaDB 10.3版,及保护MariaDB和连接到MariaDB Shell

从Linux命令行备份和还原单个、多个或所有MySQL/MariaDB数据库

 

单、多或所有数据库备份和还原的语法

1、单数据库备份的语法

$ sudo mysqldump -u [username] -p [don't enter the password here] [databasename] > [backupfile.sql]

2、单数据库还原的语法

$ sudo mysql -u [username] -p [don't enter the password here] [databasename] < [backupfile.sql]

3、多数据库备份的语法

$ sudo mysqldump -u [username] -p [password] –databases [databasename1] [databasename2] > [backupfile.sql]

4、所有数据库备份的语法

$ sudo mysqldump -u [username] -p [password] –-alldatabases > [backupfile.sql]

附:

UserName:数据库用户名。

Password:数据库的密码。

DatabaseName:数据库的名称。

backupfile.sql:备份文件名。

 

示例:备份和还原

下面的示例向我们展示了备份和还原单个、多个或所有数据库的方法。

1)如何在Linux中备份单个MySQL/MariaDB数据库?

在此示例中,我们将把testdb备份到testdb.sql文件:

$ sudo mysqldump -u root -p testdb > testdb.sql

2)如何在Linux中还原单个MySQL/MariaDB数据库?

在此示例中,我们将从testdb.sql文件还原testdb数据库:

$ sudo mysql -u root -p testdb < testdb.sql

3)如何在Linux中备份多个MySQL/MariaDB数据库?

在此示例中,我们将把testdb1和testdb2备份到multidatabasebackup.sql文件:

$ sudo mysqldump -u root -p –databases testdb1 testdb2 > multidatabasebackup.sql

4)如何在Linux中还原多个MySQL/MariaDB数据库?

在此示例中,我们将从multidatabasebackup.sql文件还原数据库testdb1和testdb2,因为multidatabasebackup.sql文件同时具有数据库备份:

$ sudo mysql -u root -p testdb1 testdb2 < multidatabasebackup.sql

5)如何从Linux中的完整数据库备份还原单个MySQL/MariaDB数据库?

在此示例中,我们将从multidatabasebackup.sql文件中仅还原testdb1:

$ sudo mysql -u root -p testdb1 < multidatabasebackup.sql

6)如何从Linux中的完整数据库备份还原所有MySQL/MariaDB数据库?

在此示例中,我们将从alldatabases.sql文件还原所有数据库:

$ sudo mysql -u root -p < alldatabases.sql

7)如何以压缩格式备份单个MySQL/MariaDB数据库?

在此示例中,我们将把testdb的压缩备份保存到testdb.sql.gz文件,当数据库很大时,它将减少服务器上的磁盘空间利用率:

$ sudo mysqldump -u root -p testdb | gzip >testdb.sql.gz

8)如何在Linux中还原单个MySQL/MariaDB数据库的压缩格式?

在此示例中,我们将从压缩的testdb.sql.gz文件还原testdb数据库:

$ sudo gunzip < testdb.sql.gz | mysql -u root-p testdb

9)用于备份自动化的Shell脚本

下面的示例对testdb数据库进行自动备份,备份的数据库将保存到/backup/db/testdab19-02-2020.tar.gz中,保留期为5天。

在所需目录上创建一个名为mysql_backup.sh的文件,并添加以下代码,文件许可权应为755,以便执行该文件,就我而言,我已经在/opt/mysql_backup.sh目录下创建了一个文件。

以下是MySQL/MariaDB备份的Shell脚本:

# vi /opt/mysql_backup.sh

#!/bin/bash

date_format=`date +%d-%m-%Y`

mysqldump -u root testdb| gzip -9 > /backup/db/testdb-$date_format.sql.gz

find /backup/db/test* -mtime +5 -exec rm {} \;

为mysql_backup.sh文件设置可执行权限:

# chmod +x /opt/mysql_backup.sh

最后运行脚本以实现此目的:

# sh /opt/mysql_backup.sh

附:Cron Job计划

Cron Job将使我们按计划时间执行程序,下面的Cron Job计划每天下午6点运行:

0 18 * * * /opt/mysql_backup.sh

 

相关主题

将MySQL数据库备份到Amazon S3的方法

精选文章
热门文章