MySQLsource命令的使用简介
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MySQLsource 命令的使⽤简介
⽬录
⼀个线上问题的引发的思考
MySQL 之source 命令
⼀个线上问题的引发的思考
今天上班的时候,开发的同事拿过来⼀个.zip 的压缩包⽂件,说是要把⾥⾯的数据倒⼊到数据库⾥⾯,本来想着是成型的SQL ,只需要复制粘贴⼀下,倒⼊到数据库中就可以了。
拿到的时候,才发现问题没我想的那么简单,我⾸先看到的是⼀个压缩包,⼤概30多M ,解压之后,发现⾥⾯的内容是个.sql 的数据⽂件,⽂件的⼤⼩是645M 左右,这么⼤的⽂件,要是⼿动粘贴上去,那简直太变态了。
第⼀反应这个是不是mysqldump 出来的备份数据,要是这样的话,就可以直接在命令⾏中进⾏恢复了。
于是打开看了⼀下⾥⾯的内容,发现这是⼀个标准的Navicat 导出的sql ⽂件,⾥⾯全都是各种的插⼊语句,到这⾥,⼀下⼦释然了,因为这样的就sql ⽂件可以直接通过MySQL 的source 命令来倒⼊到数据库中,因为数据量很⼤,为了避免出错,我重新看了看source 的语法,这⾥简单说明下。
MySQL 之source 命令
mysql source 命令主要⽤来倒⼊超⼤的sql ⽂件,在⽇常⼯作中,我们往往会遇到导⼊⼤的数据⽂件的情况,在MySQL 中,⽤mysql source 命令可以导⼊轻松解决这个问题,MySQL source 的基本语法如下:
12
mysql>use dbtest;
mysql>set names utf8;
mysql>source D:/xxx/xxx/back.sql;
⾸先我们选定需要倒⼊数据的数据库,然后设定默认字符集,接着使⽤source 命令,后⾯跟上我们的.sql 所在的绝对路径就可以了。
如果我们的⽂件有5个,就可以通过这样的⽅法⼀个⼀个倒⼊到数据库中,切记选定正确的数据库名称。
考虑这样⼀种需求,如果我们有10个这样的⽂件,假设⼿动⼀条⼀条去添加,难免出现⼀些错误。
这时候,我们可以采⽤⼀个办法,就是把我们要写的这些source 命令写在⼀个⽂件中,像下⾯这样:
1
23456789
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 的命令打印到前段输⼊框,像下⾯这样:
1
234Query ok;
Query ok;
Query ok;Query ok;
5678
Query ok;
Query ok;
Query ok;
Query ok;如果不想看到这样的结果,可以将source 命令的输出结果重定向到⼀个⽂件中,这样就可以避免不停的在控制台输出了。
1
mysql>use db_test
mysql>source D:/test.sql > output.log
最后提醒⼀点,source 命令需要在mysql 命令⾏中使⽤,⽽不像mysqldump 那样直接可在命令⾏使⽤。
今天就简单写这么多吧。
以上就是MySQL source 命令的使⽤简介的详细内容,更多关于MySQL source 命令的使⽤的资料请关注其它相关⽂章!。