Mysql数据库导出与恢复

Mysql数据库导出与恢复

前言

最近测试环境要迁移服务器,需要将数据库迁移到新的数据库
Linux和Windows都有数据库要迁移
由于数据量特别大,尝试用navicat的数据传输,但是数据传输太慢了
在前辈们博客的基础上整理并实践了,产出此文

查询mysql安装路径

连上数据库(用navicat和命令行连接都可以)
查找安装路径的命令: SHOW VARIABLES like 'character_sets_dir';

Linux

导出

导出完整数据:表结构+数据

可以使用 mysqldump 命令来导出数据库,语法格式如下:

mysqldump -u用户名 -p 数据库名 > 自定义脚本名称.sql

前提:必须进入mysql的安装路径的bin目录,如下图:
数据库的安装位置
mysql安装的bin目录
示例
在这里插入图片描述
在这里插入图片描述

只导出 MySQL 的数据表结构

可以使用 -d 选项,格式此:mysqldump -u用户名 -p -d 数据库名 > 自定义脚本名称.sql
具体操作可以参考上图

只导出 MySQL 的数据表某张表的结构

mysqldump -u用户名 -p密码 -d 库名 表名 > 自定义脚本名称.sql

导出 MySQL 的数据表某张表的结构并且导出此表的数据

去掉-d是导出结构并导出数据,加上-d是仅导出表结构
mysqldump -u用户名 -p密码 -d 库名 表名 > 自定义脚本名称.sql
语法如上具体操作可以参考上图

还可以用navicat可视化工具直接操作[比较简单不一一讲解,直接看下面例图即可]

在这里插入图片描述
在这里插入图片描述

但是当数据量比较大的时候还是用命令的方式操作效率比较高,推荐使用命令方式导出

导入

使用 mysql 命令导入数据库,格式如下:

需要导入的数据库若不存在,创建即可
mysql -uroot -p 数据库名 < 导入脚本名.sql

使用 source 命令导入数据库,格式如下:

需要先登陆数据库
source 脚本位置/脚本名.sql

Windows

导出

mysqldump导出

和Linux一样都可以使用mysqldump命令导出
进入mysql的安装路径的bin里面操作以下命令
mysqldump -u 数据库用户名 -p 数据库名称 > 导出的数据库文件


例图在这里插入图片描述

navicat工具

在这里插入图片描述

如果是用navicat工具,小数据量操作还是比较方便的,如果是大数据量的话推荐用命令的方式操作

导入

如果用navicat导出的推荐用navicat工具直接导入,选择数据库直接运行sql文件

` 曾尝试过用mysql命令导入,  但奇怪的是就是倒入不了,如果知道的大佬评论留言一下,🙏 

	于是就用source命令倒入了,但是导入的时候报Error看下图
`

source导入

mysql> create database test010;      # 创建数据库
mysql> use test010;                  # 使用已创建的数据库 
mysql> set names utf8;           # 设置编码
mysql> source 绝对路径:/脚本名.sql  # 导入备份数据库

例图
在这里插入图片描述

source导入报错Error 1366

Error 1366在这里插入图片描述
这个是啥原因呢?
客户端的编码格式和数据库的编码格式不一样------看下图
show variables like '%character%'
在这里插入图片描述
这边设置成和数据库一样的utf8
set character_set_client=utf8;
或者连接数据库的时候指定编码格式如下
mysql -uroot -p –default-character-set=utf8
再次执行source命令即可

mysqldump或者导入数据报: Error 2013备份报错解决办法

在这里插入代码片

net_read_timeout 默认 :30
net_write_timeout 默认 :60
将值调大一些即可
在这里插入图片描述

备份还原或数据导入报错1153:Got a packet bigger than‘max_allowed_packet’bytes的问题

SHOW VARIABLES LIKE '%max_allowed_packet%';
在这里插入图片描述
1.临时修改
SET GLOBAL max_allowed_packet = 524288000; #修改 512M
设置完之后需要重新连接数据库才会更改在这里插入图片描述
2.永久修改

 修改my.cnf(windows下my.ini),需重启mysql
 在 [MySQLd] 部分添加一句(如果存在,调整其值就可以):
 max_allowed_packet=512M (根据实际情况调整数值)

分享一句我特别喜欢的话:每一天都是一个新的日子,走运当然是好的,不过我情愿做到分毫不差。这样,运气来的时候,你就有准备了。 ————海明威《老人与海》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值