MySQL source命令的使用简介
作者:AsiaYe 发布时间:2024-01-15 14:35:18
一个线上问题的引发的思考
今天上班的时候,开发的同事拿过来一个.zip的压缩包文件,说是要把里面的数据倒入到数据库里面,本来想着是成型的SQL,只需要复制粘贴一下,倒入到数据库中就可以了。拿到的时候,才发现问题没我想的那么简单,我首先看到的是一个压缩包,大概30多M,解压之后,发现里面的内容是个.sql的数据文件,文件的大小是645M左右,这么大的文件,要是手动粘贴上去,那简直太变态了。第一反应这个是不是mysqldump出来的备份数据,要是这样的话,就可以直接在命令行中进行恢复了。于是打开看了一下里面的内容,发现这是一个标准的Navicat导出的sql文件,里面全都是各种的插入语句,到这里,一下子释然了,因为这样的就sql文件可以直接通过MySQL的source命令来倒入到数据库中,因为数据量很大,为了避免出错,我重新看了看source的语法,这里简单说明下。
MySQL之source命令
mysql source命令主要用来倒入超大的sql文件,在日常工作中,我们往往会遇到导入大的数据文件的情况,在MySQL中,用mysql source命令可以导入轻松解决这个问题,MySQL source的基本语法如下:
mysql>use dbtest;
mysql>set names utf8;
mysql>source D:/xxx/xxx/back.sql;
首先我们选定需要倒入数据的数据库,然后设定默认字符集,接着使用source命令,后面跟上我们的.sql所在的绝对路径就可以了。如果我们的文件有5个,就可以通过这样的方法一个一个倒入到数据库中,切记选定正确的数据库名称。
考虑这样一种需求,如果我们有10个这样的文件,假设手动一条一条去添加,难免出现一些错误。这时候,我们可以采用一个办法,就是把我们要写的这些source命令写在一个文件中,像下面这样:
source D:/xxx/xxx/back0.sql;
source D:/xxx/xxx/back1.sql;
source D:/xxx/xxx/back2.sql;
source D:/xxx/xxx/back3.sql;
source D:/xxx/xxx/back4.sql;
source D:/xxx/xxx/back5.sql;
source D:/xxx/xxx/back6.sql;
source D:/xxx/xxx/back7.sql;
source D:/xxx/xxx/back8.sql;
source D:/xxx/xxx/back9.sql;
然后我们去source这个文件,直接就可以顺序执行这些命令。这种方法,似乎已经解决了我们的问题,但是这样的操作方式,还存在一个新的问题,如果有100个这样的文件,而且他们的名称有一定的规律,我们一个个去写命令肯定很麻烦,这个时候我们可以通过写脚本的方式或者使用各类编辑器的列编辑模式,先产生这样一个一个的命令行,最后再一次粘贴到文件中,最终执行source命令即可。
需要注意的是,source命令执行的时候,会把query ok的命令打印到前段输入框,像下面这样:
Query ok;
Query ok;
Query ok;
Query ok;
Query ok;
Query ok;
Query ok;
Query ok;
如果不想看到这样的结果,可以将source命令的输出结果重定向到一个文件中,这样就可以避免不停的在控制台输出了。
mysql>use db_test
mysql>source D:/test.sql > output.log
最后提醒一点,source命令需要在mysql命令行中使用,而不像mysqldump那样直接可在命令行使用。
今天就简单写这么多吧。
来源:https://cloud.tencent.com/developer/article/1533580


猜你喜欢
- 摘要: 简介 asyncio可以实现单线程并发IO操作,是Python中常用的异步处理模块。关于asyncio模块的介绍,笔者会在后续的文章
- 一、Django中路由的作用URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间
- getpwname只能得到gid一个username。import pwdmyGroupId = pwd.getpwnam(username
- 本文实例讲述了Python多线程结合队列下载百度音乐的方法。分享给大家供大家参考。具体如下:一直想做个下载音乐的脚本,后来决定就拿百度音乐开
- Python项目文件中安装 setup.py安装 setup.py 的过程与安装其他的 Python 包的过程类似。首先,你需要下载或者使用
- 前两天我在工作中遇到这样一个问题,我们有一个程序是用来增量抽取EBS 中的表数据的,有的是全量抽取,即先删除原表中的数据,然后重新抽取数据,
- 平常我们只听说过ADO等一类ASP对象,但在ASP中还有个鲜为人知的专门SQL Server的ASP访问对象,它就是SQLOLE.SQLSe
- 1、什么是双向数据绑定Vue.js是一个MV VM框架, 即数据双向绑定, 即当数据发生变化的时候, 视图也就发生变化, 当视图发生变化的时
- 王者荣耀很多朋友都想买脚本和挂之类的,想更加容易的获得金币等可以在游戏里买英雄等,今天我们发挥程序员的优势教给大家用Python语言自己写一
- 操作方法:先要安装好SQLServer2005,并且记住安装时自己设置的用户名和密码。下面以恢复SQLServer下备份的数据库文件epdm
- 使用Python进行数据分析,大家都会多少学习一本经典教材《利用Python进行数据分析》,书中作者使用了Ipython的交互环境进行了书中
- TEMPLATESDjango 1.8的新特性一个列表,包含所有在Django中使用的模板引擎的设置。列表中的每一项都是一个字典,包含某个引
- 您是否常常在做网页的过程中发现一个问题呢?当图片上传的时候,如果图片太大 ,就会把网页撑破,唯一做的就要先把它用软件缩小,再上传上
- 简介这个模块处理python中常见类型数据和Python bytes之间转换。这可用于处理存储在文件或网络连接中的bytes数据以及其他来源
- 本文我们来做一个简单的随机漫步数据图,进一步了解matplotlib的使用,使用Python生成随机漫步数据,再使用matplotlib绘制
- 本文给出一条 SQL 语句用于展示在同一名服务器上,不同的数据库间查询,注意当前连接用户要对两个库都有权限SQL Server 中 SQL
- 最近,我有机会在一个真实的 Golang 场景中使用泛型,同时寻找与 Stream filter(Predicate<? super
- 常用的消息摘要算法有MD5和SHA,这些算法在python和go的库中都有,需要时候调用下就OK了,这里总结下python和go的实现。一、
- 浅谈python中set使用In [2]: a = set() # 常用操作1 In [3]: a Out[3]: set()
- 在操作系统的文件中,还存在着一种我们可以自己定义的文件属性。这些属性不是保存在文件内容中,也不是直接可以通过 ls -al 所能看到的内容。