从零开始学MySQL
Posted rajxie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从零开始学MySQL相关的知识,希望对你有一定的参考价值。
鉴于上节篇幅以安装为主,因此对于调用mysql所需要使用的“命令”只是略微提及。随之而来就会带给读者诸多不解了,因为你会思考,这串长长的字符到底有什么特殊的含义呢?聪明的你可能早就抱着好奇心去“摆渡”一下了。而答案不过是在连接mysql服务器时,应当使用的一种方式——即,身份验证而已。另外一个情境是,先前笔者每每登录总是需要键入这么多个字符,久而久之就难免抱怨,“哎呀,好烦,每次登录都要设定这些连接参数,诸如‘mysql -p -uroot -h......(此处省略更多参数)’,既然无法跳过这一步,那么有没有什么好的方法可以减少文本的输入量呢?”。相信您肯定知道提出这一出问题意味着什么。本节,我们就致力解决这两个问题吧。
本文的规则:黑色字体为正常步骤,红色字体为希望能引起读者的注意,笔者用意大致是出于“警示”或“引导”这两种。
本文阅读建议:建议分节(一)详读;至于分节(二),读者应先浏览一下大致的模块,然后根据自己的需要选择相应方法,详细看一遍后进行尝试。
本文概览:
(一)MySQL的连接参数
(二)在MySQL的连接参数上“偷懒”
若本文出现错误或有所遗漏等问题,还请读者指出,鄙人不胜感激。
(一)MySQL的连接参数
这里相当于是对上一节的补充,如果想将知识体系梳理完整,还请您务必这么想。因为知识就是从已知中发现未知,从而进行扩展的,对吧?
(1)调用mysql所使用的命令提示符:mysql [option]
看到option加了中括号,有的小伙伴就十分清晰了——哦,这个option是“可选”的。
(2)没错,它确实是可选的,但下面这种命令形式比较常见:
mysql -h 主机名 -p -u 用户名
ps: 登录的时候,记得将主机名和用户名换成你自己的哟。键入上述命令之后,你会收到“Enter password: ”的提示,密码输入无误便可继续收到“mysql> ”,这就意味这我们连接上服务器了。往后就可以基于现有的表进行任意的查询了。这里还指出出,您可以将-h换为--host,将-p换位--password,将--u换为--user。
为什么说它常见呢?这是因为执行mysql时,提供所有选项往往是因为面临更多的需求,但通常至少需要指定用户名和密码。这是下限。
① 关于-h:MySQL采用的是“C/S”体系结构,因此我们在进行查询之前,需要先通过客户端去连接服务器。自然而然地,通过-h来指定服务器名称就不难理解了吧。有鉴于此,当我们在本地的服务器上运行时,加不加-h便无所谓了,因为默认是127.0.0.1或者说是localhost嘛。
② 关于-p和-u:而用户和密码只是您进入服务器数据库的一个身份验证而已(不是随随便便都可以让所有人进入数据库的,如果陌生人都可以随意进入你家,那不就乱套了么?),因此出于安全考虑,你说-p和-u是不是很有必要呢?
不建议的做法:参照-h和-u,同样可以将密码直接输入,但注意密码应该“紧跟在-p后面”,如-p123456,而不是-p 123456。值得注意的是,-h和-u后面的内容可以紧跟也可以先空一格后再输入。(有些小伙伴就纠结为什么?那你这样想就可以了:别人很容易就能获悉服务器名和你的账户名,但你的密码也是公开的么?它们的性质肯定不一样,因材施教呗。)
(3)连接到服务器之后,想终止会话怎么办?没关系,掌握下面命令中的其中一个,你就可以随时退出咯。
1 quit 2 exit 3 \q
(二)在MySQL的连接参数上“偷懒”
接下来,我们来探讨一下,如何“偷懒”。
(1)将这些连接参数事先存储在主目录的一个选项文件里。
I. 如何实现:
① 首先,使用快捷键Ctrl + Alt + T打开命令行界面,输入
vi ~/.my.cnf
② 其次,按下 i 键开启插入模式,并输入
[client] host=主机名 user=用户名 password=密码
ps:请将上述的主机名、用户名、密码替换为你自己的。
额外说明:选项文件中的[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. 脚本:
① 首先,先创建一个以.sh为后缀的文件。这里将文件名命名为要打开的数据库的名称。
vi 数据库名.sh
② 其次,按下 i 键,并输入如下内容(注意将主机名、用户名、数据库名换成你自己的):
#! /bin/bash
exec mysql -h 主机名 -p -u 用户名 数据库名
③ 将文件设置为可执行文件。
chmod +x 数据库名.sh
这样,在命令行中输入该文件名称(注意:需要切换到文件所在目录),即可启动mysql并连接到相关的数据库了。大功告成!
以上是关于从零开始学MySQL的主要内容,如果未能解决你的问题,请参考以下文章