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
猜你喜欢
- 看看上一篇《javascript设计模式交流(一)Singleton Pattern》本文将讨论Prototype Pattern的js实现
- 前言大家可能经常收到安全部门的警告邮件,SQL注入,XSS攻击漏洞等等,偶尔还被黑客挂了小马,郁闷不?还有数据库执行太慢(根据经验基本是没有
- 1、首先计算MD5加密的二进制数组(128位),然后再对这个二进制数组进行base64编码(而不是对32位字符串编码)。例如,用Python
- 最近想学习一些python数据分析的内容,就弄了个爬虫爬取了一些数据,并打算用Anaconda一套的工具(pandas, numpy, sc
- 前言今天的文章比较基础,但却是必须掌握的,而且本文有些内容,也许你之前没想过。希望这篇文章能够让你理解环境变量并掌握 Go 环境变量相关操作
- 1.首先在Xshell上通过conda创建新的虚拟环境2.此时在 /home/y210101004/.conda/envs下多了刚
- 前言上位机实战开发先放一放,今天来学习一个新的内容—NumPy的使用1 一维数组例:用普通方法生成一维数组num = [0 for i in
- 使用python画图,发现生成的图片在console里。不仅感觉很别扭,很多功能也没法实现(比如希望在一幅图里画两条曲线)。想像matlab
- 本程序是利用3.x的Firefox浏览器可以读取本地文件的特性,实现通过xmlHttPRequest上传大文件功能,并在可以上传过程中动态显
- upyter Notebook已经逐渐取代IDE成为了多平台上写简单Python脚本或应用的几家选择。Jupyter Notebook可以通
- PyTorch 随机数生成占用 CPU 过高的问题今天在使用 pytorch 的过程中,发现 CPU 占用率过高。经过检查,发现是因为先在
- PHP有一组进程控制函数(编译时需要–enable-pcntl与posix扩展),使得php能实现跟c
- python2.7环境下运行安装相关模块想要每天定时启动,最好是把程序放在linux服务器上运行,毕竟linux可以不用关机,即定时任务一直
- 有时候我们可能不知道一个用户的密码,但是又需要以这个用户做一些操作,又不能去修改掉这个用户的密码,这个时候,就可以利用一些小窍门,来完成操作
- 使用distinct在mysql中查询多条不重复记录值的解决办法如何使用distinct在mysql中查询多条不重复记录值?有时候想用dis
- 1.为什么需要创建虚拟环境?虚拟环境是隔离应用确切依赖项的好办法。此类隔离避免了全局 Python 环境中的冲突,有助于进行测试和协作。随着
- BLOG地址:http://www.planabc.net/article.asp?id=107学习标准的朋友,一般都会在学习的过程中接触到
- <!--#include file="admin_Checkuser.asp"--> <%
- 工欲善其事,必先利其器.python是解释型的语言,但是在windows下如果要执行程序的话还得加个python shell的话,
- 在我做过的N多项目中,基本都有个跑不开的怪圈——首页很难设计。根据进度安排,首页必须按时出来,不然没法review,也没法测试。于是,首页只