mysqldump 备份数据格式
mysqldump -uroot -p密码 备份语句 > /目录名/备份文件名.sql
- 备份语句格式:
库名 表名
:备份一张的所有数据
库名 表名1 表名2
:备份多张表的所有数据
-B 库名
:备份1个库的所数据
-B 库名1 库名2
:备份多个库的所数据
-A 或 --all-databases
:备份服务器的所有数据mysql 恢复数据格式
mysql -uroot -p密码 [库名] < /目录名/备份文件名.sql
说明:使用表的备份文件恢复数据时必须写库名
# 必须先停止mysql服务器
[root@host50 ~]# systemctl stop mysqld
# 创建备份文件夹
[root@host50 ~]# mkdir /bakdir
# 备份数据方式一:拷贝数据库目录
[root@host50 ~]# cp -rp /var/lib/mysql /bakdir/mysql.bak
# 备份数据方式二:打包压缩数据库目录下文件
[root@host50 ~]# cd /var/lib/mysql
[root@host50 ~]# tar -zcf /bakdir/mysql.tar.gz ./*
[root@host50 ~]# ls /bakdir/
mysql.bak mysql.tar.gz
# 模拟数据丢失
[root@host50 ~]# rm -rf /var/lib/mysql/*
# 文件拷贝回数据库目录
[root@host50 ~]# cp -r /bakdir/mysql.bak/* /var/lib/mysql/
# 修改属主属组为mysql
[root@host50 ~]# chown -R mysql:mysql /var/lib/mysql
# 重新启动mysql服务
[root@host50 ~]# systemctl start mysqld
# 登录mysql验证
[root@host50 ~]# mysql -uroot -p123qqq...A
mysql> show databases;
# 解压数据至mysql目录下
[root@host50 ~]#tar -zxf /bakdir/mysql.tar.gz
-C /var/lib/mysql
# 重新启动mysql服务
[root@host50 ~]#systemctl start mysqld
# 登录mysql验证
[root@host50 ~]# mysql -uroot -p123qqq...A
mysql> show databases;
# 备份tarena库salary表的所有数据
[root@host50 ~]# mysqldump -uroot -p密码 tarena salary > /bakdir/tarena_salary.sql
# 备份tarena库所有数据
[root@host50 ~]# mysqldump -uroot -p密码 -B tarena > /bakdir/tarena.sql
# 备份tarena库和 db1库的所有数据
[root@host50 ~]# mysqldump -uroot -p密码 -B db1 tarena > /bakdir/twodb.sql
# 备份所有数据
[root@host50 ~]# mysqldump -uroot -p密码 -A > /bakdir/allbak.sql
[root@host50 ~]# ls /bakdir/
allbak.sql tarena.sql tarena_salary.sql
mysql.bak mysql.tar.gz twodb.sql
# 模拟数据丢失,删除表数据
mysql> delete from tarena.salary;
mysql> exit
# 导入备份恢复数据
[root@host50 ~]# mysql -uroot -p密码 tarena < /bakdir/ tarena_salary.sql
# 查看表记录
[root@host50 ~]# mysql -uroot -p密码
Mysql> select count(*) from tarena.salary;
...
# 使用库的备份文件恢复数据
mysql> drop database tarena;
mysql> exit;
# 使用库的备份文件恢复数据 不需要写库名
[root@host50 ~]# mysql -uroot -p密码 < /bakdir/tarena.sql
# 管理员登陆查看数据
[root@host50 ~]# mysql -uroot -p密码
mysql> show databases;
...
mysql> use tarena;
...
mysql> show tables;
...