例如:需要还原的数据库脚本文件为test.sql,脚本中已包含数据库的创建,test.sql所在目录为/home

1、常用source命令

进入mysql数据库控制台,如mysql -uroot -p密码

mysql > source /home/test.sql;

2、使用mysqldump命令

mysqldump -uroot -p 数据库名 < /home/test.sql  (无需进入mysql数据库控制台)

3、使用mysql命令

mysql -uroot -p 数据库名 < /home/test.sql  (无需进入mysql数据库控制台)

MySQL导出的SQL语句在导入时有可能会非常非常慢,经历过导入仅45万条记录,竟用了近3个小时。在导出时合理使用几个参数,可以大大加快导入的速度。

-e 使用包括几个VALUES列表的多行INSERT语法;
--max_allowed_packet=XXX 客户端/服务器之间通信的缓存区的最大大小;
--net_buffer_length=XXX  TCP/IP和套接字通信缓冲区大小,创建长度达net_buffer_length的行

注意:max_allowed_packet和net_buffer_length不能比目标数据库的配置数值大,否则可能出错。

首先确定目标库的参数值
mysql>show variables like 'max_allowed_packet';
mysql>show variables like 'net_buffer_length';

也可在/etc/my.cnf中进行这两项参数的配置,如配置文件中这两项参数分别为:

max_allowed_packet = 64M

net_buffer_length = 16384

根据参数值书写mysqldump命令进行数据库的导出

mysqldump -uroot -p 数据库名   -e --max_allowed_packet=67108864 --net_buffer_length=16384 > SQL文件

使用该sql文件进行还原,之前2小时才能导入的sql现在不到一分钟就可导入完成。

注意:

尽量避免用navicat或SQLyogEnt等客户端备份数据库

使用navicat或SQLyogEnt等客户端备份的数据库脚本,进行还原时有多少条就inser into多少次

而使用用 mysqldump 工具导出的,进行还原时inser into方式不同,如下所示:

另外,source命令在导入时,如果一次性插入的数据太多,mysql会自动优化,拆开多次插入。

这样效率会快很多。

mysql数据库的还原及常见问题解决的更多相关文章

  1. MySQL数据库备份还原(基于binlog的增量备份)

    MySQL数据库备份还原(基于binlog的增量备份) 一.简介 1.增量备份      增量备份 是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件.这就意味 ...

  2. (转载)MySQL数据库的几种常见高可用方案

    转自: https://yq.aliyun.com/articles/74454   随着人们对数据一致性的要求不断的提高,越来越多的方法被尝试用来解决分布式数据一致性的问题,如MySQL自身的优化. ...

  3. MySQL数据库备份还原

    本文以CentOS 7 yum安装的MariaDB-server5.5为例,说明MySQL的几种 备份还原方式 将服务器A(192.168.1.100)上的数据库备份,还原到B(192.168.1.2 ...

  4. 阿里云mysql数据库备份还原

    1.下载备份包 在rds的备份恢复中点击下载,在弹出的窗口中复制内网下载地址(前提是目标服务器与rds内网互通,否则请复制外网地址) 在目标服务器中执行如下命令进行下载: wget -c '复制的地址 ...

  5. [MySql] - 数据库备份还原

    导出数据库到SQL方法: mysqldump.exe -u[USERNAME] -p[PASSWORD] -h [IP] jira --lock-all-tables > c:\db.sql m ...

  6. MySQL数据库安装保姆教程及问题解决

    使用Mysql的zip压缩包解压版,下载之后需进行一定的配置,才能使用它. 下面对Mysql压缩包版的安装方法进行详细的描述,如有疑问或错误,望及时反馈. 首先,mysql的官方下载地址点我进行下载 ...

  7. 使用mysqldump进行mysql数据库备份还原

    mysqldump是mysql自带的备份还原工具,默认在安装目录的bin下 可通过cmd命令行启动,然后运行: 还原一个数据库: mysql -h 主机 -u 用户名 -p密码 数据库名 < 指 ...

  8. Linux下的Mysql数据库备份+还原

    数据库备份: root@debian-mm:/home/debian-mm# mysqldump -u root -p Account > Account.sql Enter password: ...

  9. mysql数据库的安装以及常见优化设置

    原文请详见:http://www.ucai.cn/blogdetail/7036?mid=1&f=5 能够在线执行查看效果哦! 本文依据优才网课程整理,面向web开发人员,内容以有用为主,专业 ...

随机推荐

  1. 整理一下Promise 的用法

    Promise 的定义 Pormise是JS的异步编程的一种解决方案,在ES6将其写进了语言标准,提供了原生的Promise对象. Promise简单来理解就是一个容器,里面存放着某个未来才会结束的事 ...

  2. JS 断点调试心得

    1.断点调试是啥?难不难? 断点调试其实并不是多么复杂的一件事,简单的理解无外呼就是打开浏览器,打开sources找到js文件,在行号上点一下罢了.操作起来似乎很简单,其实很多人纠结的是,是在哪里打断 ...

  3. 2019年Java后端工程师常见面试题和感想

    来新公司有5个月了,从第二个月开始就参与公司后端工程师的面试工作了,包括校招在内,面试超过100个(包括40个校招的终面)应聘者了,应聘者中有超过10年的技术经理,有6年以上的高级开发,有3到5年的中 ...

  4. c#winform listview设置每项的间距

    代码如下: [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)] private stat ...

  5. 你不知道的javascript(上卷)读后感(二)

    this词法 熟悉ES6语法的开发者,箭头函数在涉及this绑定时的行为和普通函数的行为完全不一致.跟普通this绑定规则不一样,它使用了当前的词法作用域覆盖了this本来的值. 误解 this理解成 ...

  6. c# 运算符和表达式

  7. nginx用指针的值的最后一位来判断过期事件

    nginx中,将地址的最后一位取出来,用Instace变量标识,用来判断是否连接已经被释放成为过期时间 为什么指针地址最后一位一定是0呢? 这里的内存地址,一定是内存分配器分配出来的地址,如new . ...

  8. IPC五种通讯方式

    IPC五种通讯方式 1.管道:速度慢,容量有限,只有父子进程能通讯 2.FIFO:任何进程间都能通讯,但速度慢 3.消息队列:容量受到系统限制,且要注意第一次读的时候,要考虑上一次没有读完数据的问题 ...

  9. Oracle自动化安装脚本-part03-亲试ok

     此为 软件包配置文件 software.conf [CentOS6] binutils-2.20.51.0.2-5.11.el6 (x86_64) compat-libcap1-1.10-1 (x8 ...

  10. BZOJ 3903 反垄断 (最大流推的结论题)

    题目 中文题目,不解释: BZOJ传送门 分析 这道题BZOJ上也只有几个人过-奇怪了 下面是正解 原问题为一个二分图边染色问题.首先考虑最好情况.最理想情况的分配为:设一个点xxx的度为dgr(x) ...