mysql数据的备份和恢复
听歌 沛公 第一个欧,听的是沛公,唱的岂不是你我
文章目录
备份
全量备份
备份全部数据
增量备份
基于上一次的备份之后的备份
差异备份
基于上一次全量之后的备份
mysql备份
下面备份的都是sql语句
备份所有数据库
# 下面是在对应服务器的终端执行 我用的是Linux系统
mysqldump -u'用户名' -p'密码' -A
# 执行上面后,可将备份的sql语句输出到控制台,需要重定向输入到sql文件中
mysqldump -u'用户名' -p'密码' -A > all_db.sql
-A # 表示所有的数据库
--all-databases # 跟上面等价值
备份制定的数据库
# 下面是在对应服务器的终端执行 我用的是Linux系统
mysqldump -u'用户名' -p'密码' -B 库1 库2
# 执行上面后,可将备份的sql语句输出到控制台,需要重定向输入到sql文件中
mysqldump -u'用户名' -p'密码' -B 库1 库2 > db.sql
-B # 后面可跟制定的数据库,多个用空格隔开
--databases # 跟上面等价值
备份多张表
# 下面是在对应服务器的终端执行 我用的是Linux系统
mysqldump -u'用户名' -p'密码' 库名 表1 表2
# 执行上面后,可将备份的sql语句输出到控制台,需要重定向输入到sql文件中
mysqldump -u'用户名' -p'密码' 库名 表1 表2 > ta.sql
# 后面可以直接跟库名 表名,多张表需要空格分开
备份表结构
# 下面是在对应服务器的终端执行 我用的是Linux系统
mysqldump -u'用户名' -p'密码' -d 库名 表1 表2
# 执行上面后,可将备份的表结构sql语句输出到控制台,需要重定向输入到sql文件中
mysqldump -u'用户名' -p'密码' -d 库名 表1 表2 > ta.sql
# 后面可以直接跟库名 表名,多张表需要空格分开
备份表数据
# 备份表数据需要在mysql客户端进行操作
mysql -u'用户名' -p'密码'
# 先查看数据库支持不
mysql> show variables like 'secure%';
+------------------+-----------------------+
| Variable_name | Value |
+------------------+-----------------------+
| secure_file_priv | /var/lib/mysql-files/ |
+------------------+-----------------------+
1 row in set (0.01 sec)
# 上面指定了备份表数据存放地址 mysql5.7的话上面查询有两条数据,mysql8的话只有上面的一条
mysql> select * from mysql.user into outfile '/var/lib/mysql-files/data.xls';
# 在此目录下有一个 data.xls 的文件
# 也可以修改此默认的目录
vim /etc/my.cnf
# 在下面添加一个配置
secure_file_priv='存放的目录'
# 添加完配置后要重启mysql的呢
恢复
恢复所有数据 对应上面的第一个和第二个
# 下面是在对应服务器的终端执行 我用的是Linux系统
mysql -u'用户名' -p'密码' < sql文件
恢复表
# 下面是在对应服务器的终端执行 我用的是Linux系统
mysql -u'用户名' -p'密码' 库名 < sql文件
# 在mysql中恢复
mysql -u'用户名' -p'密码'
mysql> use 库名
mysql> source sql文件
恢复表结构
# 下面是在对应服务器的终端执行 我用的是Linux系统
mysql -u'用户名' -p'密码' -D 库名 < sql文件
恢复表数据
# 下面是在对应服务器的终端执行 我用的是Linux系统
mysql -u'用户名' -p'密码'
mysql> use 库名
mysql> load data infile 'sql文件' into table 表名
国庆happy呀!