Sunday, October 22, 2017

Linux下MySQL/MariaDB数据库的备份与恢复

MySQL数据库的备份,最常用的是phpmyadmin、帝国备份王之类的工具,但是如果备份时提示内存超限的话,可以使用下面的方法。

一、通过MySQL/MariaDB自身提供的功能

导出数据库要用到MySQL/MariaDB的mysqldump工具,基本用法是:
shell> mysqldump [OPTIONS] database [tables] 如果你不给定任何表,整个数据库将被导出。

1.导出数据库
命令:
mysqldump -u 用户名 -p 数据库 > 数据库.sql
示例:
mysqldump -u root -p db1 > db1.sql (将数据库db1备份到db1.sql<可以改成你想要放入的目录中>中)
提示输入密码,完成即可。

2.导入数据库
需要先创建一个空数据库
mysql -u root -p(输入密码后进入MySQL/MariaDB)
create database db1; (创建一个名为db1的数据库)
exit (退出MySQL/MariaDB)
命令:
mysql -u 用户名 -p 数据库 < 数据库.sql 示例: mysql -u root -p db1 < db1.sql (从备份文件db1.sql中导入数据到数据库db1中) 提示输入密码,完成即可。 二、通过直接拷贝MySQL/MariaDB数据库文件
如果数据库特别大,可以使用拷贝的方式进行备份,不过不同的操作系统间可能会导致不兼容。
1.导出数据库
进入MySQL/MariaDB目录,打包需要备份的数据库目录
示例:
cd /var/lib/mysql (进入MySQL/MariaDB目录)
tar -zcvf db1.tar.gz db1 (打包db1目录,如果提示没有权限,在前面加上sudo,提示输入密码后即可)

2.导入数据库
首先创建一个空数据库,将打包的文件拷贝到MySQL/MariaDB目录后解压
示例:
mysql -u root -p(输入密码后进入mysql)
create database db1; (创建一个名为db1的数据库)
exit (退出MySQL/MariaDB)
cp db1.tar.gz /var/lib/mysql (将打包文件拷贝到MySQL/MariaDB目录下)
cd /var/lib/mysql (进入MySQL/MariaDB目录)
tar -zxvf db1.tar.gz (解压到当前目录

Leave a Reply

Your email address will not be published. Required fields are marked *