我们都知道MySQL是ORACLE开发的开源RDBMS。
大多数CMS网站(例如wordpress,joomla…)都使用MySQL数据库作为后端。
Linux管理员应注意MySQL的备份和还原命令。
下面的示例向我们展示了如何使用mysqldump命令进行备份和还原MySQL数据库。
mysqldump是备份mysql数据库的有效方法之一。
它会创建一个*.sql扩展名为的备份文件,该文件可以轻松还原。
单数据库备份的语法
$ sudo mysqldump -u [username] -p [don't enter the password here] [databasename] > [backupfile.sql]
单数据库还原的语法
$ sudo mysql -u [username] -p [don't enter the password here] [databasename] < [backupfile.sql]
多数据库备份的语法
$ sudo mysqldump -u [username] -p [password] –databases [databasename1] [databasename2] > [backupfile.sql]
所有数据库备份的语法
$ sudo mysqldump -u [username] -p [password] –-alldatabases > [backupfile.sql]
用户名(UserName):数据库用户名
密码(Password):密码数据库
数据库名(DatabaseName):你的数据库的名称
backupfile.sql:备份文件名
示例:备份和还原
下面的示例向我们展示了备份和还原单个,多个或所有数据库的方式。
1)如何在Linux中备份单个MySQL / MariaDB数据库?
在此示例中,我们将备份testdbto testdb.sql文件。
$ sudo mysqldump -u root -p testdb > testdb.sql
2)如何在Linux中还原单个MySQL / MariaDB数据库?
在此示例中,我们testdb将从testdb.sql文件中还原数据库。
$ 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数据库?
在这个例子中,我们要还原的数据库testdb1,并testdb2从multidatabasebackup.sql文件,因为multidatabasebackup.sql文件中有数据库备份两种。
$ sudo mysql -u root -p testdb1 testdb2 < multidatabasebackup.sql
5)如何从Linux中的完整数据库备份还原单个MySQL / MariaDB数据库?
在此示例中,我们将仅还原testdb1from multidatabasebackup.sql文件。
$ sudo mysql -u root -p testdb1 < multidatabasebackup.sql
6)如何从Linux中的完整数据库备份还原所有MySQL / MariaDB数据库?
在此示例中,我们将从alldatabases.sql文件中还原所有数据库。
$ sudo mysql -u root -p < alldatabases.sql
7)如何备份压缩格式的单个MySQL / MariaDB数据库?
在此示例中,我们将对testdbto testdb.sql.gz文件进行压缩备份。当数据库很大时,它将减少服务器上的磁盘空间利用率。
$ sudo mysqldump -u root -p testdb | gzip >testdb.sql.gz
8)如何在Linux中还原单个MySQL / MariaDB数据库的压缩格式?
在此示例中,我们testdb将从压缩testdb.sql.gz文件中还原数据库。
$ sudo gunzip < testdb.sql.gz | mysql -u root-p testdb
9)用于备份自动化的Shell脚本
下面的示例将自动备份testdb数据库。备份的数据库将以/backup/db/testdab19-09-2013.tar.gz五天的保留期存储到其中。
创建一个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作业计划
Cron作业将使我们的生活更加轻松,可以按计划的时间执行程序而不会失败。下面的cron作业计划每天下午6点运行。
0 18 * * * /opt/mysql_backup.sh