mysql数据备份

Posted 慕沁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql数据备份相关的知识,希望对你有一定的参考价值。

  1. 物理备份:直接复制数据库文件,适用于大型数据库环境(如数据文件、控制文件、归档日志文件等)。但不能恢复到异构系统中如Windows。
  2. 逻辑备份: 备份的是建表、建库、插入等操作所执行SQL语句,适用于中小型数据库,效率相对较低。
  3. 导出表:将表导入到文本文件中。----->一条条插入记录的操作
技术分享图片
#语法:
# mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql
当你是本地登录的时候这个-h可以不写,当其他用户登录时,就得写上-h 服务器


#示例:
1.单库备份
mysqldump -uroot -p123456 day47 > E:\\day47.sql
mysqldump -uroot -p123456 test class employee department > E:\\test-c-e.sql
2.多库备份
mysqldump -uroot -p123456 --databases test db2 zuoye > E:\\dbzzz.sql
3.备份所有库
mysqldump -uroot -p123456 --all-databases > E://all.sql
使用mysqldump实现逻辑备份
技术分享图片
方法1.在没有登录进去之前恢复
C:\Users\Administrator>mysql -uroot -p123456 test < day47.sql
drop database day47;
drop database test;
create database day47;
create database test;
mysql -uroot -p123456 day47 < day47.sql
mysql -uroot -p123456 test < day47.sql  #也可以在自己新建的空数据库里添加你备份的库
方法2.mysql登录进去后恢复
mysql> use db1;
mysql> SET SQL_LOG_BIN=0;  #设置日志,如果写日志就等于1,不写就等于0。一般不用设置
mysql> source E:\\day47.sql;

3.注:如果备份/恢复单个库时,可以修改sql文件
DROP database if exists school;
create database school;
use school;
恢复备份

 

当我们没有登录用户时,查看恢复状况,可以用一下语句,不用登录

mysql -uroot -e "use test;show tables;"   #注意是双引号
mysql -uroot -e "show databases;" #注意分号在双引号里面
技术分享图片
一、表的导出
 
select * from stu into outfile E:\\userinfo.txt  fields terminated
by , lines terminated by \n;  #将字段之间按逗号分开,行之间用‘\n‘分开


1290 - The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
这样写的话报错了。新版本不支持你这样直接指定路径写,为了保证数据的安全。
如果一旦有黑客拿到sql权限的时候,就把你的数据就给拿走了。你的数据就不安全了
那么怎么解决这个错误呢?
show variables like %secure%;
解决方法:更改配置文件
[mysqld]
secure_file_priv=E:\\
导出
技术分享图片
二、表的导入
use bak;
show tables;
create table user(id int primary key auto_increment,name char(20),age int,depart_id int);
desc user;
load data infile E:\\userinfo.txt into table user fields terminated by , 
lines terminated by \n;#导入表
导入

 

 

务必保证在相同版本之间迁移
# mysqldump -h 源IP -uroot -p123 --databases db1 | mysql -h 目标IP -uroot -p456

 

以上是关于mysql数据备份的主要内容,如果未能解决你的问题,请参考以下文章

从mysql的片段中加载ListView

硬核!管理mysql数据库的工具

连接MySQL出现错误:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)(代码片段

使用 json rereiver php mysql 在片段中填充列表视图

关于mysql驱动版本报错解决,Cause: com.mysql.jdbc.exceptions.jdbc4Unknown system variable ‘query_cache_size(代码片段

修改MySQL密码报错“ERROR 1819 (HY000): Your password does not satisfy the current policy requirements“(代码片段