你知道MySQL是什么
以我们正在使用的头条app为例,它其实是由两部分组成的,一部分是客户端程序,一部分是服务器程序。客户端可能有很多种形式,比如手机APP,电脑软件或者是网页版头条,每个客户端都有一个唯一的用户名,就是你的头条号,另一方面,头条公司在他们的机房里运行着一个服务器软件,我们平时操作头条其实都是用客户端来和这个服务器来打交道。比如小明用头条私信给小刘发了一条消息的过程其实是这样的:
- 消息被客户端包装了一下,添加了发送者和接收者信息,然后从小明的头条客户端传送给头条服务器;
- 头条服务器从消息里获取到它的发送者和接收者,根据消息的接收者信息把这条消息送达到小刘的头条客户端,小刘的头条客户端里就显示出小明给他发了一条消息。
MySQL的使用过程跟这个是一样的,它的服务器程序直接和我们存储的数据打交道,然后可以有好多客户端程序连接到这个服务器程序(例如:Navicat),发送增删改查的请求,然后服务器就响应这些请求,从而操作它维护的数据。和头条一样,MySQL的每个客户端都需要提供用户名密码才能登录,登录之后才能给服务器发请求来操作某些数据。我们日常使用MySQL的情景一般是这样的:
- 启动MySQL服务器程序。
- 启动MySQL客户端程序并连接到服务器程序。
- 在客户端程序中输入一些命令语句作为请求发送到服务器程序,服务器程序收到这些请求后,会根据请求的内容来操作具体的数据并向客户端返回操作结果。
我们知道在一台计算机上可以同时运行多个程序,比如微信、QQ、音乐播放器、文本编辑器啥的,每一个运行着的程序也被称为一个进程。我们的MySQL服务器程序和客户端程序本质上都算是计算机上的一个进程,这个代表着MySQL服务器程序的进程也被称为MySQL数据库实例,简称数据库实例。
每个进程都有一个唯一的编号,称为进程ID,英文名叫PID,这个编号是在我们启动程序的时候由操作系统随机分配的,操作系统会保证在某一时刻同一台机器上的进程号不重复。比如你打开了计算机中的QQ程序,那么操作系统会为它分配一个唯一的进程号,如果你把这个程序关掉了,那操作系统就会把这个进程号回收,之后可能会重新分配给别的进程。当我们下一次再启动 QQ程序的时候分配的就可能是另一个编号。每个进程都有一个名称,这个名称是编写程序的人自己定义的,比如我们启动的MySQL服务器进程的默认名称为mysqld, 而我们常用的MySQL客户端进程的默认名称为mysql。
MySQL的安装
不论我们通过下载源代码自行编译安装的方式还是直接使用官方提供的安装包进行安装之后,MySQL的服务器程序和客户端程序都会被安装到我们的机器上。不管用哪种方式安装,都要记住安装MySQL的目录!
`MySQL`的大部分安装包都包含了服务器程序和客户端程序,不过在Linux下使用RPM包时会有单独的服务器RPM包和客户端RPM包,需要分别安装。
今天,我们通过安装MySQL来了解下涉及的一些概念知识吧。
- Windows操作系统上的安装目录:C:\Program Files\MySQL\MySQL server 5.7
- bin目录下的可执行文件
在MySQL的安装目录下有一个特别特别重要的bin目录,这个目录下存放着许多可执行文件:/usr/local/mysql/bin(路径根据自己安装的目录来定)
mysql的bin目录
对于有可视化界面的操作系统来说,我们拿着鼠标点点点就可以执行某个可执行文件,不过现在我们更关注在命令行环境下如何执行这些可执行文件,命令行通俗的说就是那些黑框框,这里的指的是类UNIX系统中的Shell或者Windows系统中的cmd.exe。
- 使用可执行文件的相对/绝对路径
假设我们现在所处的工作目录是MySQL的安装目录,也就是/usr/local/mysql,我们想启动bin目录下的mysqld这个可执行文件,可以使用相对路径来启动:
./bin/mysqld
或者直接输入mysqld的绝对路径也可以:
/usr/local/mysql/bin/mysqld
- 将该bin目录的路径加入到环境变量PATH中
启动MySQL
UNIX里启动服务器程序
在类UNIX系统中用来启动MySQL服务器程序的可执行文件有很多,大多在MySQL安装目录的bin目录下:
- mysqld
mysqld这个可执行文件就代表着MySQL服务器程序,运行这个可执行文件就可以直接启动一个服务器进程。但这个命令不常用,我们继续看其他更常用的启动命令。
- mysqld_safe
mysqld_safe是一个启动脚本,它会间接的调用mysqld,而且还顺便启动了另外一个监控进程,这个监控进程在服务器进程挂了的时候,可以帮助重启它。另外,使用mysqld_safe启动服务器程序时,它会将服务器程序的出错信息和其他诊断信息重定向到某个文件中,产生出错日志,这样可以方便我们找出发生错误的原因。
- my
my也是一个启动脚本,它会间接的调用mysqld_safe,在调用my时在后边指定start参数就可以启动服务器程序了,就像这样:
my start
需要注意的是,这个 my 文件其实是一个链接文件,它的实际文件是 ../support-files/my。
另外,我们还可以使用my命令来关闭正在运行的服务器程序,只要把start参数换成stop就好了:
my stop
- mysqld_multi
其实我们一台计算机上也可以运行多个服务器实例,也就是运行多个MySQL服务器进程。mysql_multi可执行文件可以对每一个服务器进程的启动或停止进行监控。
Windows里启动服务器程序
Windows里没有像类UNIX系统中那么多的启动脚本,但是也提供了手动启动和以服务的形式启动这两种方式,我们详细了解下。
- mysqld
同样的,在MySQL安装目录下的bin目录下有一个mysqld可执行文件,在命令行里输入mysqld,或者直接双击运行它就算启动了MySQL服务器程序了。
- 以服务的方式运行服务器程序
首先看看Windows 服务是什么?如果无论是谁正在使用这台计算机,我们都需要长时间的运行某个程序,而且需要在计算机启动的时候便启动它,一般我们都会把它注册为一个Windows 服务,操作系统会帮我们管理它。把某个程序注册为Windows服务的方式挺简单,如下:
"完整的可执行文件路径" --install [-manual] [服务名]
其中的-manual可以省略,加上它的话表示在Windows系统启动的时候不自动启动该服务,否则会自动启动。服务名也可以省略,默认的服务名就是MySQL。例如:
C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld
所以如果我们想把它注册为服务的话可以在命令行里这么写:
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld" --install
在把mysqld注册为Windows服务之后,我们就可以通过下边这个命令来启动MySQL服务器程序了:
net start MySQL
当然,如果你喜欢图形界面的话,你可以通过Windows的服务管理器通过用鼠标点点点的方式来启动和停止服务。
关闭这个服务也非常简单,只要把上边的start换成stop就行了,就像这样:
net stop MySQL
总结
今天,我们了解了什么是MySQL,并且学习了安装过程中的一些概念知识,具体的安装步骤我没有写,这个安装教程在网上很多,随便一搜就有了,而且操作起来也很方便很容易,这里就不赘述了。
另外,还讲解了如何启动MySQL的多种方式,主要是用命令在不同环境下启动MySQL,希望这些对大家在使用MySQL过程中有所帮助。其实,讲到MySQL,最主要的还是他的客户端和服务端的连接过程,及这个过程中都发生了什么,关于MySQL客户端、服务端、及相互的连接,下一篇文章我们再一起学习哦~
欢迎关注留言讨论,一起学习呀~