RajXie

上上节篇幅以安装为主上篇则只讲述术语、基础知识,因此只略微提及了调用或使用mysql所需要使用的“命令”,相信不少小伙伴都有如隔靴搔痒一般。

① 比如带给读者诸多不解了,因为你会思考:

——“mysql -p -u root -h 服务器地址”这么长的字符串到底有什么特殊的含义,竟就打开了MySQL的大门?聪明的你可能早就抱着好奇心自行“摆渡”,且发现答案不过是连接mysql服务器时必须提供的  “身份验证”  罢。

——对于尚未执行(可能因为输入错误),或处于执行状态的语句,有何方法撤销执行?

② 另外一个情境是,先前笔者每每登录总要键入相同的多个字符,如‘mysql -p -uroot -h......(此处省略更多参数)’,久而久之就对于“这些连接参数造成的重复工作”不胜其烦。既然无法跳过“身份验证”这一环节,那么有无方法能适当地减少文本的输入量呢?

本节,我们将致力解决这两个问题。

本文的规则:黑色字体为正常步骤,红色字体为希望能引起读者的注意,笔者用意大致是出于“警示”或“引导”这两种。

本文阅读建议:因分节(一)、分节(二)介绍的知识在所有系统上通用,建议详读;而分节(三)则是面向Linux系统,建议心有余力的小伙伴可以读一下。想要对此有所了解的读者应先浏览一下大致的模块,然后根据自己的需要选择相应方法进行尝试。在这里稍微提及一下,不过多介绍在Windows系统的实现方法,其一是受限于篇幅,其二是原理相似,只要将调用mysql的命令及参数整合进环境变量或.bat(批处理文件)即可。

本文概览:

(一)连接MySQL

(二)执行或清除已输入的SQL语句

(三)连接MySQL上“偷懒”(选读)

若本文出现错误或有所遗漏等问题,还请读者指出,鄙人不胜感激。

 

(一)连接MySQL


(1)身份验证:使用MySQL之前,必须按需求提供足够的信息作为登录凭证。

调用mysql所使用的命令提示符为mysql [option]

下面介绍下常见的命令形式——至少指定用户名和密码(这是下限。如果在调用mysql时提供了更多的选项,往往是为了让mysqld响应更多的需求)。

mysql -h 主机名 -p -u 用户名

 ps: 登录时,记得将“主机名”和“用户名”替换为你自己的信息哟。键入上述命令并回车,你将会收到“Enter password: ”的提示,密码输入无误便可收到“mysql> ”,这就意味这我们连接上服务器了。

 

① 关于-h  MySQL采用的是“C/S”体系结构,因此在通信前,需要先使客户端与服务器保持连接状态。(这样,通过-h来指定服务器的ip或名称就不难理解了吧。有鉴于此,当我们在服务器上运行时,加不加-h便无所谓了,这是因为其缺省值是127.0.0.1或者说是localhost嘛。)

② 关于-p和-u  密码和用户只是您连接服务器的一个安全凭证。(试想,如果陌生人可以随意进入你家,那不就乱套了么?以此类比,也不是随随便便就可以让所有人进入数据库的。出于安全考虑,你说-p和-u是不是很有必要呢?)

注意 

  1. -h 主机名可替换为--host=主机名,-p可替换为--password=用户密码,-u 用户名可替换为--user=用户名。
  2. h和-u后面的内容既可以贴紧关键字也可以先空一格再输入内容。参照-h和-u,密码也是可以直接输入的,但应该“贴紧跟在-p后面”,且不建议在多用户操作系统中直接暴露密码信息。如-p123456,而不是-p 123456。有些小伙伴就纠结为什么?那这样想就可以释怀了:别人很容易获悉服务器名和你的账户名,但你的密码也是公开的么?它们的性质肯定不一样,因材施教呗。

 

(2)终止会话:使用完MySQL之后,想要退出怎么办?

  只要掌握下面命令中的任意一个,你就可以随时退出咯。

1 quit
2 exit
3 \q

 

 

(二)执行或清除已输入的SQL语句


 鉴于前面已经讲过客户端链接到服务器端的内容,因此下面不再赘述。若是小伙伴们有所遗忘,还请回头翻看一下。

(1) 如何在mysql里执行或取消执行SQL语句?( 只有输入“完整”,才能被程序正确识别,就像使其有了“可执行”的标识一样 )

① 执行是事前操作:在语句的结尾处添加一个分号(;),并按下Enter键

② 中断执行是事后操作:只能借助shell的功能Ctrl+D键 或 Ctrl+C键进行强制拦截。

 

注意:在mysql中,只能用英文状态下的分号、逗号(否则在发送至mysqld前,语法解析器会将其先行拦截。记住这一条件很简单,因为代码都是字母组合,外国先入为主对吧?)

① 分号( ; )、\g、\G用于语句的终止或分隔。 
--这和我们平时使用句号( 。)的作用一样,标志这语句的结束。只有这样,mysqld才清晰了你此次就想查询这么多的内容,是吧?
② 逗号( , )用于字段的分隔。
--这和我们平时使用逗号(,)的作用一样,表示这语句尚未说完,后面可添加更多的字段充当内容。

ps:

  1. 上面所言其实无需去特别记忆,因为日常使用频率很高。
  2. ;  和\g、\G的用法都是将该标志放在语句尾部,但显示结果有所不同:
①分号( ; )和  \g 按表格展示行列。\g 的意思是go。

② \G :以“垂直”的方式显示查询结果,每行显示一个值。
--这在受限于显示器界面的大小,但输出结果包含列数又多的情况下尤其有用。但缺点是不够直观,不好与其他行数据进行比较。

 

(2)如何在mysql里清除那些已输入了的语句?(应当注意,清除执行语句与取消执行语句的区别,您输入语句但尚未按下回车才属于前者。一旦按下回车,由于服务器响应迅速,这意味后续只能使用shell的功能Ctrl+D或Ctrl+C来对其进行取消了)

① 使用Backspace键进行回退(不通用)。但这个方法有很大的局限性,因为只有当你输入一行时尚可如此做,当输入了多行,就只能清除最下面的一行。ps:输入多行时,除了第一行的提示符为mysql> ,其他行都是-> 。

② 使用 \c 取消语句的执行(通用)。\c的意思是cancel。

 

(3) 实战演练:

① 使用分号( ; )和 \G作为语句的结束标志。至于\g,请读者自行尝试。

 

同一行中可以置放多个语句,使用分号( ; )隔开。想不通为什么这样做可行,就联想下中文句号在同一行中是否可以使用多次即可。

ps:与创建选项文件一样,多个语句可以被存储在一个SQL脚本中,之后再利用shell的重定向功能就能执行脚本里面的语句了。在这先卖个关子,用到之时再做讲解。

 

 (4)记不住那么多怎么办?学会观察!且看下面第一行和最后一行“赤裸裸的提示”:

 

小结:

每次执行语句,都是一次事务提交——mysql向mysqld发起了一次请求,告知要对数据库文件进行什么操作。(具体什么是事务,后面学到自会讲解。若受好奇心驱使,还请“摆渡”) 

从连接服务器,到与mysql进行交互,这个过程无异于我们使用电脑浏览器查询相关信息。其中,浏览器是电脑客户端的一个代理,通过搜索引擎等一些手段可以向存储相关网页的服务器发起查询。

 

(三)在连接MySQL上“偷懒”(选读)


由于每次连接MySQL都需要使用相似的连接参数,如何减少重复性劳作就显得相当重要了。

(1)将常用的连接参数事先存储在主目录的一个选项文件里,据此轻松连接。

I. 如何实现:

① 首先,需要创建一个配置文件。比如利用快捷键Ctrl + Alt + T打开命令行界面,并使用vi工具进行这一步骤:

vi ~/.my.cnf

 

② 其次,需要在配置文件中输入好如下相关信息。按照上面的步骤,则此处应按下 i 开启插入模式,并将下述的主机名、用户名、密码这几个占位符替换为你自己的:

[client]
host=主机名
user=用户名
password=密码

额外说明:选项文件中的[client]是一个选项组。它作为选项组的开始标记,表示该组名后面的所有选项都适用于所有的客户端程序。

其他选项参数可根据需要增减。比如是要连接到本地运行的mysqld服务器,则无需加入host=主机名这个参数。get到了吗?

 

③ 接着,保存并退出文件编辑界面——先按下 : 输入 wq  

 

④ 最后,将文件权限设定为仅自己可读写。

chmod 600 ~/.my.cnf

 

II. 如何测试:

如果你按照上面操作,那么之后在命令行界面键入mysql可直接进入会话界面的话,说明设置有效!

 

 

(2)利用shell的history命令功能,输入重复命令。

这里需要用到的命令是:感叹号字符( !,如  !my  或  !#  均可以。

 如果使用是!#,#需要您使用数字来进行替换。但您可能需要先通过history可以查询到是第几个命令。

② 如果使用!my,要确保以“my”这两个字符足够使得shell找到以my开头的命令,我们的目标是最近调用mysql这行命令。

③ 若为上一个命令,可直接键入 !! 

 

 

(3)利用shell别名或脚本定义一个mysql命令行快捷方式

I. 别名:

这里需要用到的命令是:alias ,如alias=\'mysql -h主机名 -p -u用户名\'。请注意alias为内建命令,因此只在当前的shell进程生效。要使其永久生效,还需将它配置到shell程序的启动文件里。若读者账户的默认sh为bash,那么就是.bashrc或.bash_profile文件了。(这里不做过多描述,感兴趣的小伙伴可以自行“摆渡”一下)

 

II. 脚本:

① 首先,使用vi工具创建一个以.sh为后缀的文件。这里将文件名命名为要打开的数据库的名称。 

vi 数据库名.sh

 

② 其次,按下 i 键,并输入如下内容(注意将主机名、用户名、数据库名换成你自己的)

#! /bin/bash
exec mysql -h 主机名 -p -u 用户名 数据库名

 

③ 最后,将文件设置为可执行文件

chmod +x 数据库名.sh

 

如何测试:

在命令行中输入该文件名称(注意:需要切换到文件所在目录),即可启动mysql并连接到相关的数据库了。大功告成!

 

分类:

技术点:

相关文章:

  • 2022-01-29
  • 2022-01-29
  • 2022-12-23
  • 2022-01-14
  • 2021-09-27
  • 2021-09-27
  • 2021-12-04
  • 2022-12-23
猜你喜欢
  • 2022-01-17
  • 2022-12-23
  • 2022-12-23
  • 2021-08-27
  • 2021-06-16
  • 2022-01-29
相关资源
相似解决方案