从零开始学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并连接到相关的数据库了。大功告成!

原文地址:https://www.cnblogs.com/RajXie/p/10879088.html

时间: 2024-09-29 23:46:53

从零开始学MySQL(二)的相关文章

从零开始学JavaScript二(基本概念)

基本概念 一.区分大小写 在ECMAScript中的一切(变量.函数名.操作符)都是区分大小写的. 如变量名test和Test分别表示两个不同的变量, 二.标识符 所谓标识符,就是指变量.函数.属性的名字,或者函数的参数.标识符按照下列格式规则组合起来的一或者多个字符: 第一个字符必须为一个字母.下划线(_).或者一个美元符号($); 其它字符可以是字母.下划线.美元符号或数字. ECMAScript标识符采用驼峰大小写格式,也就是第一个字母小写,剩下的每个单词的首字母大写,例如:firstSe

Java从零开始学十二(构造方法)

一.构造方法 构造方法的主要目的是为类中的属性初始化 二.构造方法的定义格式 class 类名称{ 访问权限 类名称(类型1 参数1,类型2 参数2,…){ 程序语句 ; …    // 构造方法没有返回值 } } 在构造方法的声明中读者一定要牢记以下几点: · 构造方法的名称必须与类名称一致 · 构造方法的声明处不能有任何返回值类型的声明 · 不能在构造方法中使用return返回一个值 class Person { private String name; // 声明姓名属性 private

从零开始学mysql

第一章MySQL的安装与配置 1.1 在windows平台下载和安装MySQL数据库 Windows社区版本下载地址:[https://dev.mysql.com/downloads/mysql/](),其中安装包主要有两种,一种是MSI安装包,Windows Installer的数据包,它实际上是一个数据库,包含安装一种产品所需要的信息和在很多安装情形下安装(和卸载)程序所需的指令和数据.通过安装给出的提示,用户只需要进行选择即可,各种配置文件都是已经安装好的,适合刚接触的人使用:另一种是.z

从零开始学Python3(二)--list和tuple

list和tuple都是python内置的数据类型 list list是一个可变的有序表,所以,可以往list中追加元素到末尾: >>> a = ['a','b','c',1,2,3] >>> a.append(4) >>> a ['a', 'b', 'c', 1, 2, 3, 4] 也可以把元素插入到指定的位置,比如索引号为1的位置: (insert比append的性能差很多) >>> a.insert(1,'d') >>

从零开始学Shell(二)

$1,$2....${10},${11},[root@localhost cee]# cat p.sh #!/bin/bash#file_name:p.shecho $1 $2[root@localhost cee]# sh p.sh 123 william123 william[root@localhost cee]# sh p.sh 123 william 456123 william[root@localhost cee]# [root@localhost cee]# echo \${1.

从零开始学安全(二十九)●上传漏洞代码分析

这是一段php 对文件上传黑名单限制  出现看没什么问题  但对包含函数运用错误以及对php 各种类型解析也不了解 1第一个问题   拿上传的后缀名 去和黑名单 对比   这种代码首先逻辑上就要明确 不是拿后缀名和黑名单数组对比是否包含 因为后缀可以是 php3  而是 对黑名单里的每个字符串逐个 去对比 上传后缀     应该用 输入字符和数组里的字符进行对比是否有包含关系 第二个问题 黑名单验证不全 |asp/aspx|asp,aspx,asa,asax,ascx,ashx,asmx,cer

从零开始学android<android事件的处理方式.二十四.>

在android中一共有 多种事件,每种事件都有自己相对应的处理机制 如以下几种 1 单击事件 View.OnClickListener public abstract void onClick (View v) 单击组件时触发 2 单击事件 View.OnLongClickListener public abstract boolean onLongClick (View v) 长按组件时触发 3 键盘事件 View.OnKeyListener public abstract boolean

从零开始学android<RatingBar评分组件.二十三.>

如果现在用户要对某个应用程序打分往往会使用图所示的组件,通过选择的"五角星"的个数来决定最终的打分成绩 这样的功能在Android之中,可以使用RatingBar组件实现,使用此组件可以方便用户的输入,而且很直观,RatingBar类的定义结构如下: java.lang.Object ? android.view.View ? android.widget.ProgressBar ? android.widget.AbsSeekBar ? android.widget.RatingBa

【高德地图API】从零开始学高德JS API(二)地图控件与插件——测距、圆形编辑器、鼠标工具、地图类型切换、鹰眼鱼骨

摘要:无论是控件还是插件,都是在一级API接口的基础上,进行二次开发,封装的一系列更加便于开发者使用,减少开发者工作量的二级API接口.除了官方通用的鱼骨.鹰眼控件,还有大量官方开发的地图插件,类似谷歌的lib.当然本文还会介绍自定义插件的使用. ------------------------------------------------------------------------------------------------- 第一部分 控件 目前官方支持的控件包含:缩放控制条-地图