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