如何创建物理备份并还原MySQL数据库?

  • 发布时间:2022-02-06 18:31:39
  • 阅读次数:801

关于数据库备份,通常分为逻辑备份和物理备份两种。逻辑备份只生成一个备份文件,而物理备份包括所有数据库的文件和目录信息。以MySQL为例,MySQL的逻辑备份可以通过mysqldump工具实现,这篇帮助介绍MySQL物理备份的创建和还原方法。

创建备份

首先用MySQL的root密码登录数据库。

$ sudo mysql -u root -p

用下面这条命令获取MySQL的所在目录。

mysql> select @@datadir;
+-----------------+
| @@datadir       |
+-----------------+
| /var/lib/mysql/ |
+-----------------+
1 row in set (0.00 sec)

也可以直接执行下面这个命令,获取MySQL的所在目录。

$ sudo mysqld --verbose --help | grep ^datadir
datadir    /var/lib/mysql/

创建物理备份之前,先停止MySQL数据库。

$ sudo systemctl stop mysql

创建存储MySQL物理备份的目录,以当前日期命名。

$ sudo mkdir -p /var/mysql_backups/2020_07_13_backup

用cp命令拷贝全部数据库文件到该目录中。

$ sudo cp -R /var/lib/mysql/. /var/mysql_backups/2020_07_13_backup

最后启动MySQL数据库。

$ sudo systemctl start mysql

以上是创建物理备份的过程,下面介绍用物理备份还原数据库。

还原备份

还是先停止MySQL数据库。

$ sudo systemctl stop mysql

重命名当前MySQL的所在目录,并创建一个新目录。

$ sudo mv /var/lib/mysql /var/lib/mysql_old
$ sudo mkdir /var/lib/mysql

把物理备份拷贝到新创建的目录中。

$ sudo cp -R /var/mysql_backups/2020_07_13_backup/. /var/lib/mysql

调整文件和目录的所有者权限。

$ sudo chown -R mysql:mysql /var/lib/mysql

启动MySQL数据库。

$ sudo systemctl start mysql

最后用root密码登录数据库,测试是否还原成功。

$ sudo mysql -u root -p
mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

以上就是创建MySQL物理备份的操作方法。相比逻辑备份,物理备份更加适用于大型数据库,重装和恢复起来也比较方便。

【全文完】

< 上一篇:如何在Ubuntu云服务器上安装MySQL或MariaDB? 下一篇:如何创建逻辑备份并还原MySQL数据库? >