目录
先获取MySQL官方yum源
然后正常使用yum命令下载mysql即可完成MySQL的下载
使用mysql客户端登录mysqld服务端
能够登录mysql客户端后,我们最后还需要做一点配置
先获取MySQL官方yum源(包括对yum源的介绍)
介绍一下yum源
yum源就是一个配置文件,文件后缀一般为repo,意为仓库,文件内就是一堆下载链接,可以帮yum找到该向哪个服务器发送网络请求,从而完成对软件的安装包的下载并对安装包解包。yum会自动根据当前系统的版本去找合适的yum源进行下载,一个yum源会有许多下载链接,这是为了解决依赖关系(注意这里的依赖关系和makefile没有任何关系),因为下载一个软件后,通常还需要一些软件运行的组件或者运行环境,比如别人想运行你写的hello world就得下载C库,所以一个yum源里除了得有指定软件的下载链接,还应该有其他依赖文件的下载链接。
yum就相当于应用商店,yum指令底层做了两件事,第一是根据yum源下载软件的安装包,也就是常说的下载软件,第二是解包,解包的方式为对rpm文件调用rpm-ivh指令,也就是常说的安装软件。注意从网络中只能下载软件的安装包到本地,但无法进行本地的软件安装,所以从网络下载完成后,需要本地解包进行软件的安装,也就是常说的下载软件后还需要安装软件。以rpm为后缀的文件就相当于安装包,Linux中以对rpm文件使用rpm -ivh指令完成对安装包的解包,也就是安装软件。
如何获取MySQL官方yum源
先打开网站http://repo.mysql.com/,然后按照下图的做法去做。
然后正常使用yum命令下载mysql即可完成MySQL的下载
如下图1所示,如果运行指令后没有报错,则此时mysql就下载成功了;
但如果下到最后并没有看到complete提示,而是有如下图2的报错信息,则说明下载遇到了密钥过期的问题(因为下载本质是网络通信,https协议中的密钥过期就会导致双方通信失败),解决方案也很简单,先输入指令rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 更新密钥,然后再重新调用下图1中的yum下载指令即可成功下载了。
如下图3所示,当Linux服务器中有mysql、mysqld、my.cnf这3个文件则说明mysql下载成功了,如果没有则说明下载失败,失败请回看上面的流程,看看是哪个环节出问题了。
- 图1如下。
- 图2如下。
- 图3如下。
使用mysql客户端登录mysqld服务端
在上文中说过,当Linux服务器中有mysql、mysqld、my.cnf这3个文件,则说明mysql下载成功了,说一下,在这3个文件中,mysql是客户端可执行文件,mysqld是服务端可执行文件(d表示守护进程),my.cnf是mysql和mysqld的配置文件,所以实际上mysql就是一个网络服务器,和我们以前自己编写TCP服务端和客户端是一样的,都是基于客户端和服务端的模式,所以想要mysql能够工作起来,首先要启动mysql的服务端mysqld,如下图所示,在红框处使用systemctl start mysqld命令启动服务端后,使用ps命令查看进程就能看到mysqld服务端进程的存在,使用netstat -nltp命令查看网络连接的状态就能看见mysqld处于listen监听状态(这就说明了mysqld服务端和mysql客户端本质是基于TCP协议进行通信的),正在等待mysql客户端的连接到来。
此时我们就可以通过登录客户端mysql来连接服务端mysqld了,登录客户端的方法一般有3种,如下:
- (如果本方案不行,则就使用下一个方案)如下图所示,先输入蓝框处的指令sudo grep 'temporary password' /var/log/mysqld.log获取粉框处的临时密码(因为指令前有sudo,所以输入该条指令后会提示输入用户的Linux登录密码,输入密码后可以看到粉框处就会显示出临时密码了),然后输入红框处的指令mysql -uroot -p登录客户端mysql即可(输入该登录指令后,就会弹出Enter password:,我们在这后面输入粉框中的临时密码即可成功登录客户端mysql了)。
- (如果本方案不行,则就使用下一个方案)如果输入上一段中的指令sudo grep 'temporary password' /var/log/mysqld.log后发现没有显示临时密码,则说明你安装的是较新版本的mysql,而较新的mysql的确是没有所谓的临时密码的,此时直接输入指令mysql -uroot -p即可登录客户端mysql。
- (学习mysql的初期,建议以这种方式进行登录)可以通过配置客户端mysql和服务端mysqld共同的配置文件my.cnf(vim打开my.cnf文件后如下图1所示,红框处有个[mysqld],这说明位于[mysqld下方的粉框中的内容全是服务端mysqld的配置内容;配置文件my.cnf中没有[mysql]是因为该版本下的客户端mysql没有什么bug,不需要啥配置内容,如果我们需要给客户端mysql进行配置,则如下图1的黄框处所示,可以手动添加一个[mysql],然后在其下方添加配置内容即可)让用户能够免密码登录mysql客户端,步骤为:如下图2所示,先通过指令sudo vim /etc/my.cnf打开配置文件(一定要加上sudo,否则没有权限更改my.cnf文件中的内容,即最后更改完毕后是没法通过wq保存退出该文件的,即使是wq!也无法保存退出该文件),然后在文件中添加上红框处的内容skip-grant-tables,然后wq保存退出该文件,最后如下图3所示,先重启服务端mysqld以让mysqld重新读取配置文件中的内容以让刚刚配置的新内容生效(是不需要重启客户端mysql的,因为刚才在my.cnf文件中添加的配置内容是在[mysqld]的下方,即该配置内容是属于服务端mysqld的配置项,所以只有服务端mysqld需要被重启以在启动时重新读取配置文件中的内容;重启的方案有两种,第一种是直接使用下图3粉框处的systemctl restart mysqld,第二种是使用systemctl stop mysqld关闭服务端mysqld后再systemctl start mysqld启动服务端mysqld。),然后直接输入指令mysql -uroot -p即可登录客户端mysql(这时虽然也会显示出Enter password提示你输入密码,但并不用我们输入密码了,而是直接按回车即可成功登录,当然如果你输入了任意内容后再按回车也是可以成功登录的,这是因为此时已经不做判断了,你输入的内容会被直接丢弃,然后让你成功登录)。
图1如下。
图2如下。
图3如下。
能够登录mysql客户端后,我们最后还需要做一点配置
完成上文中的步骤后,我们最后还需要对客户端mysql和服务端mysqld共同的配置文件my.cnf增加2个配置条目。如下图所示,先通过指令sudo vim /etc/my.cnf打开配置文件(一定要加上sudo,否则没有权限更改my.cnf文件中的内容,即最后更改完毕后是没法通过wq保存退出该文件的,即使是wq!也无法保存退出该文件),然后在文件中添加上红框处的两行内容character-set-server=utf8和default-storage-engine=innodb,然后wq保存退出该文件,最后重启服务端mysqld以让mysqld重新读取配置文件中的内容以让刚刚配置的新内容生效即可。