8 指定程序选项

  • 可以用几种方式提供MySQL程序的选项:
    1: 在命令行中在程序名后面提供。这对于具体程序调用时使用的选项很普遍。
    2: 在程序启动时读取的选项文件中设置。这对于每次程序运行时使用的选项很普遍。
    3: 在环境变量中设置。这对每次程序运行时所使用的选项很有用,尽管实际上最常用选项文件。

MySQL程序首先检查环境变量,然后检查选项文件,然后检查命令行来确定给出了哪些选项。如果多次指定一个选项,最后出现的选项占先。这说明环境变量具有最低的优先级,命令行选项具有最高优先级。

可以在选项文件中指定程序选项的默认值来让MySQL程序处理各选项。不需要在每次运行程序时输入选项,但可以根据需要通过命令行选项来覆盖默认值

  • 在命令行中指定的程序选项遵从下述规则:
    1: 在命令名后面紧跟选项。
    2: 选项参量以一个和两个破折号开始,取决于它具有短名还是长名。许多选项有两种形式。例如,-?和--help是指导MySQL程序显示帮助消息的选项的短名和长名。
    3: 选项名对大小写敏感。-v和-V均有效,但具有不同的含义。(它们是--verbose和--version选项的短名)。
    4: 部分选项在选项名后面紧随选项值。例如,-h localhost或--host=localhost表示客户程序的MySQL服务器主机。选项值可以告诉程序MySQL服务器运行的主机名。
    5: 对于带选项值的长选项,通过一个‘=’将选项名和值隔离开来。对于带选项值的短选项,选项值可以紧随选项字母后面,或者二者之间可以用一个空格隔开。(-hlocalhost和-h localhost是等效的)。该规则的例外情况是指定MySQL密码的选项。该选项的形式可以为--password=pass_val或--password。在后一种情况(未给出 密码值),程序将提示输入密码。也可以给出密码选项,短形式为-ppass_val或-p。然而,对于短形式,如果给出了 密码值,必须紧跟在选项后面,中间不能插入空格。这样要求的原因是如果选项后面有空格,程序没有办法来告知后面的参量是 密码值还是其它某种参量。因此,下面两个命令的含义完全不同:
-shell> mysql -ptest
- shell> mysql -p test

第一个命令让mysql使用密码test,但没有指定默认数据库。第二个命令让mysql提示输入 密码并使用test作为默认数据库。

部分选项控制可以开关的行为。例如,mysql客户端支持--column-names选项,确定是否在查询结果开头显示一行栏目名。默认情况,该选项被启用。但是可能在某些情况下你想要禁用它,例如将mysql的输出发送到另一个只希望看到数据而不希望看到开始的标题行的程序中。

  • 要想禁用列名,可以使用下面的形式来指定选项:
C:\Users\Administrator>mysql -h localhost -u root --disable-column-names -p123456
C:\Users\Administrator>mysql -h localhost -u root --skip-column-names -p123456
C:\Users\Administrator>mysql -h localhost -u root --column-names=0 -p123456

--disable和--skip前缀与=0后缀的效果相同:它们均关闭选项。

设置后,在进行查询,没有列名

mysql> use test;
Database changed
mysql> select * from a ;
+---+-------+
| 1 |   2,3 |
| 2 | 1,3,4 |
+---+-------+
2 rows in set (0.00 sec)
  • 可以用下述方法“启用”选项:
C:\Users\Administrator>mysql -h localhost -u root --column-names -p123456
C:\Users\Administrator>mysql -h localhost -u root --enable-column-names -p123456
C:\Users\Administrator>mysql -h localhost -u root --column-names=1 -p123456

设置后,在进行查询,有列名

mysql> use test;
Database changed
mysql> select * from a;
+-----+-------+
| aId | bId   |
+-----+-------+
|   1 | 2,3   |
|   2 | 1,3,4 |
+-----+-------+
2 rows in set (0.00 sec)

如果选项有前缀--loose,如果程序未识别出选项不会提示错误退出,但是会发出一条警告:

C:\Users\Administrator> mysql -h localhost -u root --loose-no-such-option -p123456
Warning: mysql: unknown option '--loose-no-such-option'
  • 当你从安装了多个MySQL的同一台机器上运行程序时,--loose前缀会很有用。当你在一个选项文件中列出选项时,该前缀会特别有用。有可能不能被程序的所有版本识别的选项可以冠以--loose前缀(或在选项文件中用loose)。不能识别选项的程序版本将会发出一条警告并忽视该选项。

  • 对mysql偶尔有用的另一个选项是-e或--execute选项,可用来将SQL语句传递给服务器。该语句必须用引号引起来(单引号或双引号)。(然而,如果想要在查询中将值引起来,则对于查询应使用双引号,查询中引用的值应使用单引号)。当使用该选项时,语句被执行,然后mysql立即退出命令外壳。

例如,你可以用下面的命令获得用户账户列表:

 C:\Users\Administrator> mysql -h localhost -u root -e "SELECT User, Host FROM User" mysql -p123456

 +------+-----------+
| User | Host      |
+------+-----------+
| root | %         |
| root | localhost |
+------+-----------+

请注意mysql数据库名作为一个独立的参量传递。然而,相同的查询可能已经使用

mysql -h localhost -u root -e "SELECT User, Host FROM mysql.User" -p123456 

从外壳中执行。

  • 可以按这种方式传递多个SQL语句,用分号隔开:
C:\Users\Administrator>mysql -h localhost -u root -e "SELECT User, Host FROM mysql.User;SELECT * FROM TEST.A" -p123456
+------+-----------+
| User | Host      |
+------+-----------+
| root | %         |
| root | localhost |
+------+-----------+
+-----+-------+
| aId | bId   |
+-----+-------+
|   1 | 2,3   |
|   2 | 1,3,4 | 
  • 请注意长形式(--execute)后面必须紧跟一个等号(=)。

-e选项也可以以类似方式用来将命令传递给MySQL簇的ndb_mgm管理客户端。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,644评论 18 139
  • MySQL程序可以从选项文件(有时也称为配置文件)读取启动选项。选项文件提供了一种很方便的方式来指定常用的选项,因...
    笑Skr人啊阅读 979评论 0 0
  • 什么是数据库? 数据库是存储数据的集合的单独的应用程序。每个数据库具有一个或多个不同的API,用于创建,访问,管理...
    chen_000阅读 4,033评论 0 19
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,151评论 2 33
  • 草在结它的种子,风在揺它的叶子。我们站着不说话,就十分美好。 ―― 顾城《门前》 大地是馈赠,山川是馈...
    石上草阅读 355评论 0 3