数据库恢复
Posted 之墨_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库恢复相关的知识,希望对你有一定的参考价值。
数据库恢复
备份
表结构
首先,在要存储的文件目录下输入cmd,回车进入操作该目录的命令行
进入命令行以后
mysqldump命令 备份文件
注意这里我原来的数据库名为jx_db
因为有特殊符号_所以备份的时候会报找不到这个数据库的错误,于是我复制了这个数据库命名为jxdb才可以正常备份!
mysqldump -u root -p jxdb > jxdb_bk_20211205.sql
mysqldump -u root -p jxdb student> student_bk.sql
恢复
恢复这里我用的是mysql source命令 至于怎么直接使用另一个mysql -uroot 这样的命令我失败了…不知道为啥
原表为
删除一行:
有外键约束,把外键约束先关闭才能正常删除
SET FOREIGN_KEY_CHECKS = 0 ;
DELETE FROM student WHERE sno = 15202101;
恢复student表:
use jxdb;
source X:\\ProgramData\\SqlBackUp/student_bk.sql
恢复成功!
注意我们在备份的时候是不用登录mysql的,
而备份时可以直接在目录下进行命令行操作但是恢复时要先登录进mysql,恢复这里用到source命令并且要指定数据库
导出
SELECT * FROM sc INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/SC_out.txt';
导出时报错:
The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
发现报错原因是安装mysql时限制了安全权限,这个选项设置系统变量: secure_file_priv,这个变量被用于限制数据导入的导出操作
用SHOW VARIABLES LIKE “secure_file_priv”;查看我们的文件路径
解决方案
解决办法
将文件导入到value的目录下 并且要注意sql语句中的斜杠要用\\才可以!
SELECT * FROM sc INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/SC_out.txt';
导入
报错:
Loading local data is disabled; this must be enabled on both the client and server sides
查看导入允许是否打开
SHOW GLOBAL VARIABLES LIKE 'local_infile';
把这个值变为 ON,在mysql客户端输入:
set global local_infile=1;
指定原来的路径文件导入表中!
成功!
LOAD DATA LOCAL INFILE
'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/SC_out.txt'
INTO TABLE sc
也可以导出为html
SELECT * FROM course INTO OUTFILE
‘C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/course_html.html’;
以上是关于数据库恢复的主要内容,如果未能解决你的问题,请参考以下文章
Mysql数据库从本地导出 服务器上导入时报 ERROR 2005 HY000 Unknown MySQL ser
mysqlbinlog 查看binlog日志时报错unknown variable 'default-character-set=utf8'