当powershell遇上mysql引发的血案
------------------【故事来由】------------------
起因:
群友问:把
cmd.exe /c a:\mysql5.6\bin\mysql.exe -uroot < a:\xxx\yyy.sql
替换成
powershell.exe /c a:\mysql5.6\bin\mysql.exe -uroot < a:\xxx\yyy.sql
就不行了。
经研究发现是由于powershell不支持【<】号导致的。
解决方法:
代替小于号的方法为,用source命令或用cmd。
start-process -FilePath 'a:\mysql5.6\bin\mysql.exe' -ArgumentList ' -uroot -e "source a:\xxx\yyy.sql"'
或
start-process -FilePath 'cmd.exe' -ArgumentList ' /c a:\mysql5.6\bin\mysql.exe -uroot < a:\xxx\yyy.sql'
代替大于号的方法是,用-r。详见mysql手册。
http://dev.mysql.com/doc/refman/5.7/en/mysqldump.html
mysqldump.exe -uroot -B -r 库名 a:\xxx\yyy.sql
--result-file=file_name, -r file_name
------------------【展开的讨论】------------------
问:mysqldump是什么?
答:
导出数据库,生成sql源码文本。
通过叫通 ip/端口/用户名/密码,来查询服务端口,得到字符串,处理字符串,然后写入文本。
这里要说明的是,实际上是一次产生n行,写入内存缓存,(受my.ini中,[mysqldump]字段中,max_allowed_packet = xxM参数控制)然后追
加入文件。并不是一行一追加。况且一行一追加,并没有意义。和二进制追加写入没区别。
问:mysql.exe < xxx.sql是什么?
答:
载入文本并提交给服务器端口。
命令行载入文本,都必须用【<】号了么?为什么Get-Content不用?
问:win,linux命令行中,程序通用的参数的写法,应该是什么?
答:
命令名 -参数名 参数值
命令名 --参数名 参数值
或
命令名 /参数名 参数值
powershell 传教士 原创文章 始作于 2016-02-19 允许转载,但必须保留名字和出处,否则追究法律责任
问:powershell中【<】取消了么?
答:
是
问:假设powershell中【>】取消了,那我用什么?
答:
用
out-file -InputObject $要输出的内容 -FilePath 文件名
https://technet.microsoft.com/en-us/library/hh849882.aspx
或用
Set-Content -Value $要输出的内容 -Path 文件名
https://technet.microsoft.com/en-us/library/hh849828.aspx
问:假设powershell中【>>】取消了,那我用什么?
答:
用
Add-Content -Value $要输出的内容 -Path 文件名
https://technet.microsoft.com/en-us/library/hh849859.aspx
注意:上述ps命令支持管道,支持单行,支持多行,支持换行和不换行。
------------------【其他数据库是如何做的?】------------------
让我们先看看,其他数据库的做法。
oracle:
E:\>exp system/oracle FILE=c.dmp FULL=Y
sqlserver + sqlcmd:
恢复
sqlcmd -S ./sqlexpress -i c:/createdata.sql
sqlserver + powershell:
在SQL Server 2012 中,微软增加了4个新的备份和还原的cmdlet
Backup-SqlDatabase
Restore-SqlDatabase
Backup-ASDatabase
Restore-ASDatabase
结论:
这些数据库软件的,导出sql命令,导入sql命令,都没有用到【<】,【>】,【>>】这些符号。
------------------【引发的思考】------------------
1 这应不应该算mysql客户端程序不合理的设计?bug?
2 应不应该给mysqldump.exe 添加 --outfile 之类的参数来代替【>】?
答:
已经有了,是-r参数。
3 应不应该给mysql.exe 添加 --runsqlfile 之类的参数来代替【<】?
既然上面的可以不用大于号,为什么这个命令没有,不用小于号的参数?
4 码农是干嘛的?
程序员(码农)是虚拟世界的创世神,符合逻辑的要长处来,不符合逻辑的应砍掉。虚拟世界的规则是创世神规定的,
虚拟世界中,路人甲砍路人乙一刀,乙是掉脑袋,还是额外长出个脑袋,应该被创世神来规定。样虚拟世界才能茁壮成长。
当然不能胡乱规定,否则虚拟世界将坍塌。
如何定义规则,是费脑筋的。否则要架构师干嘛?当然细节码农也要参与。
如果你是一只猴子,我要抢走你【<】,【>】,【>>】牌香蕉,你会很不满意的大吼么?
到底要不要夺走猴子的这只香蕉???
------------------【完】------------------
当powershell遇上mysql引发的血案的更多相关文章
- Replication的犄角旮旯(六)-- 一个DDL引发的血案(上)(如何近似估算DDL操作进度)
<Replication的犄角旮旯>系列导读 Replication的犄角旮旯(一)--变更订阅端表名的应用场景 Replication的犄角旮旯(二)--寻找订阅端丢失的记录 Repli ...
- 一个无锁消息队列引发的血案(四)——月:RingQueue(上) 自旋锁
目录 (一)起因 (二)混合自旋锁 (三)q3.h 与 RingBuffer (四)RingQueue(上) 自旋锁 (五)RingQueue(中) 休眠的艺术 (六)RingQueue(中) 休眠的 ...
- 简述C#中IO的应用 RabbitMQ安装笔记 一次线上问题引发的对于C#中相等判断的思考 ef和mysql使用(一) ASP.NET/MVC/Core的HTTP请求流程
简述C#中IO的应用 在.NET Framework 中. System.IO 命名空间主要包含基于文件(和基于内存)的输入输出(I/O)服务的相关基础类库.和其他命名空间一样. System.I ...
- 事务隔离级别引发的"血案"
事务引发的"血案"见的多了也麻木了,这回遇到个事务隔离级别的"案子",坑了我小半天的时间...也怪自己细节不牢.. 敲着代码遇到这么一个怪事情: class X ...
- [WCF]缺少一行代码引发的血案
这是今天作项目支持的发现的一个关于WCF的问题,虽然最终我只是添加了一行代码就解决了这个问题,但是整个纠错过程是痛苦的,甚至最终发现这个问题都具有偶然性.具体来说,这是一个关于如何自动为服务接口(契约 ...
- dubbox微服务实例及引发的“血案”
Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成. 主要核心部件: Remoting: 网络通信框架 ...
- Replication的犄角旮旯(七)-- 一个DDL引发的血案(下)(聊聊logreader的延迟)
<Replication的犄角旮旯>系列导读 Replication的犄角旮旯(一)--变更订阅端表名的应用场景 Replication的犄角旮旯(二)--寻找订阅端丢失的记录 Repli ...
- 转:一个Sqrt函数引发的血案
转自:http://www.cnblogs.com/pkuoliver/archive/2010/10/06/1844725.html 源码下载地址:http://diducoder.com/sotr ...
- 一个Sqrt函数引发的血案(转)
作者: 码农1946 来源: 博客园 发布时间: 2013-10-09 11:37 阅读: 4556 次 推荐: 41 原文链接 [收藏] 好吧,我承认我标题党了,不过既然你来了, ...
随机推荐
- 安装和使用sass
在安装和使用sass之前,需要一些准备条件: 文件夹---存放.scss 或 .sass: 编辑器,我们推荐使用Sublime Text 2 或者 3: 你的电脑需要安装Ruby,因为sass是依赖于 ...
- 读书笔记 1 of Statistics :Moments and Moment Generating Functions (c.f. Statistical Inference by George Casella and Roger L. Berger)
Part 1: Moments Definition 1 For each integer $n$, the nth moment of $X$, $\mu_n^{'}$ is \[\mu_{n}^{ ...
- 升级PHP
wget http://down.wdlinux.cn/in/php_up53.shsh php_up53.sh
- R开发环境(Eclipse+StatET)
引用:http://cos.name/2008/12/eclipse-statet-for-r-editor/ StatET(www.walware.de/goto/statet) 1. 安装软件 s ...
- query判断值是否为空,针对前台提交数据的校验
1.<input type="hidden" id="key" name="key" value="123"> ...
- Linux命令基本格式及目录处理命令
命令提示符 [root@localhost ~]# root:当前登录用户 localhost:主机名 ~:当前所在的目录,此处为"家"目录 #:root超级用户的提示符,如果是普 ...
- Beaglebone Black – 智能家居控制系统 LAS - 插座组装
上一篇完成了服务端,这次是拼图的最后一块,插座. 插座一个,准备废掉它其中一个插头 预想电路草图 物料清单: 两路插座一个 继电器一个,3.3V 能驱动即可: 交流转直流 3.3V,我买了现成的模块: ...
- ABAP编辑器SE38、ABAP工作台SE80 切换
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- windows下安装redis和memcached
redis安装: http://www.68idc.cn/help/server/20141128135092.html phpredis下载地址:https://github.com/phpredi ...
- InnoDB和MyISAM(转)
两种类型最主要的差别就是Innodb 支持事务处理与外键和行级锁.而MyISAM不支持. 我作为使用MySQL的用户角度出发,Innodb和MyISAM都是比较喜欢的,但是从我目前运维的数据库平台要达 ...