0. 说明:
- 安装与卸载中,用戶全部切换成为root
- 初期,mysql先使用root进行,尽快适应mysql语句;后期学习用戶管理,再考虑新建普通用戶
1. 从普通用户切换到root用户
2. 在root用户目录下创建mysql
文件夹
- 之后MySQL的相关操作都在其下进行
- 在root目录下新建目录(文件夹):
mkdir mysql
- 进入该文件夹:
cd mysql
3. 卸载原有安装过的MySQL
(1) 查看是否能直接使用MySQL
- ①检查在用户目录下是否已经存在
mysqld
目录和mariadb
目录:ps ajx | grep mysqld
ps ajx | grep mariadb
mariadb
:属于MySQL的开源分支.因为有人担心MySQL被商用后的后期可能就不给开源了,故将MySQL过去开源的版本的取出置于社区中发展使用.
- ②若目录下已经存在二者,则可以直接使用对应的MySQL,编写SQL进行通信. ⇒ 前提是保证已存在的MySQL版本
- 先确定是否存在MySQL:
which mysql
- 再确定MySQL版本:
mysql --version
- 先确定是否存在MySQL:
- ③若检查发现系统目录本就不存在MySQL,则可直接进行跳转至MySQL安装
(2) 卸载原有MySQL
-
不论存在
mysqld
目录或mariadb
目录, 都需卸载重安(以下以卸载mysqld
目录为例,mariadb
目录的卸载同理): -
① 暂停MySQL的运行状态(相当于在Windows下安装或更新软件,要先把软件退出)
- a. 查看MySQL服务的运行状态 :
ps ajx | grep mysqld
- b.暂停MySQL的运行(若MySQL处于运行状态,则不好卸载重安,故在卸载前要先停止其运行) :
systemctl stop mysqld
systemctl
是Linux中的一个脚本程序,能够开始start /停止stop /重新启动restart, Linux下对应的某个服务mysqld
: 一般Linux下的服务都是以d
结尾,对应d是daemon
的缩写,说明它自己是个守护进程(daemon) ,它在后台运行,一般都是用来做服务端程序。
- a. 查看MySQL服务的运行状态 :
-
② 卸载系统安装包
- 说明:
- 若已存在mysql,则表示之前安装过,故存在有安装包
- 在Linux下,安装包的格式一般为
.rpm
格式,但这个格式一般无法看到 ⇒ 因为平常安装都是使用源码 oryum
安装。而对于yum
安装是通过从远端拉取对应的.rpm
包,根据依赖关系把对应的包拉取来,故无法查看
- 执行:
- 查看系统中所有的安装包(曾经当前环境安装过的):
rpm -qa
- 搜索特定关键字的安装包:
rpm -qa | grep mysql
- 过去是用
yum
安装的,故卸载也需要通过yum
卸载:- 一个个去删除安装包:
yum remove (如上搜索到的mysql相关安装包名)
⇒ 如yum remove mysql-community-client-5.7.41-1.el7.x86_64
- 批量化统一删除安装包:
rpm -qa | grep mysql | xargs yum -y remove
xargs
:把从标准输入中读取到的一行行的内容,一个个喂给之后进程(此例中即yum remove
,让yum
进行逐行删除)- 每次
yum remove
时,必须将每个对应要删除的安装包都拼接到yum remove
后面 ⇒ 属于命令行(用的是argv); - 而通过管道
|
读取的安装包列表 ⇒ 属于标准输入(用的是0号下标); - 命令行与标准输入属于两套完全不同的东西 ,故
rpm -qa | grep mysql | yum remove
无法实现批量删除 ⇒ 因此要采用xargs
工具
- 每次
-y
:由于每删除一项安装包时,都会询问是否确认删除(如同过去安装时询问是否确认要安装同理),故添加-y
表示不必再依次询问,直接卸载即可
- 一个个去删除安装包:
- 查看系统中所有的安装包(曾经当前环境安装过的):
- 说明:
4. 安装MySQL的yum源
(1)下载和自己系统一致的MySQL的yum源
- 和自己系统一致,是为了以避免出现软件兼容性问题
- 安装软件一般不安装最新版,但至少要保证比操作系统新一点(如本身是7.6,可以安装7.7/ 7.8/ 7.9)
- ①查看自己系统版本:
cat /etc/redhat-release
- ②在官方yum源下载对应版本的
.rpm
文件- 直接点击打开官方yum源
- 我的是centos7.6版本,故下载
mysql57-community-release-el7.rpm
到本地即可
(2)将下载的.rpm
安装包上传至Linux上
rz
命令:选择刚刚下载的安装包
ll
:可查看是否传输成功.rpm
包
(3)在Linux上安装.rpm
安装包
- ①查看未安装mysql安装包前,曾经系统中的yum源(是没有mysql安装包的):
ls /etc/yum.repos.d/ -l
- ②安装:
rpm -ivh mysql57-community-release-el7.rpm
-ivh
:相当于对安装包进行解压(在Linux下安装操作本质就是将文件内容做拷贝)
- ③此时再次查看系统中的yum源时,可发现已有mysql了
5. 检查yum源能否正常工作
- 判断是否正常工作的标准即,能否根据yum源在对应网站当中将对应mysql的镜像或对应的安装包全部获取到
yum list | grep mysql
6. 一键安装MySQL服务
-
①安装前可查看,当前系统是不存在MySQL、MySQL对应服务和MySQL配置文件的:
which mysql
which mysqld
ls /etc/my.cnf
-
②安装MySQL
yum install -y mysql-community-server
- 虽然此处看似只安装了一个包,但其实它会将MySQL的客户端、开发库和公共组件等多样内容都安装着
-
③安装遇到秘钥过期的问题:
- 解决方式:在命令行输入
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
- 解决方式:在命令行输入
-
最终显示完成安装:
7. 检查是否安装成功
- 检查以下三部分是否都存在
which mysql
which mysqld
ls /etc/my.cnf
- 可查看MySQL的版本
8. 启动MySQL服务端
- 安装后即可启动mysqld:
systemctl start mysqld
- 注意启动的是服务端
mysqld
,而非客户端mysql
- 注意启动的是服务端
- 进一步了解mysqld是什么:
netstat -nltp
- MySQL的服务端就是一个网络服务器 ⇒ 由于是网络服务器,其必然使用的是TCP协议 ⇒ 由于是TCP协议,mysqld便处于应用层
- 在网络的角度:mysqld是一个应用层服务
- 在系统的角度:mysqld是一个用户层进程
9. 登录MySQL
- 此处提供MySQL免密码登录配置方式
- ①打开mysql配置文件:
vim /etc/my.cnf
- ②在配置文件中的最后一栏加入选项后,并保存退出:
skip-grant-tables
- ③重启服务端,适应新配置:
systemctl restart mysqld
- ④免密登录:
mysql -uroot -p
Enter password:
后直接回车即可进入
10. 配置my.cnf
- ①打开mysql配置文件:
vim /etc/my.cnf
- ②添加以下两条配置内容
character-set-server=utf8
default-storage-engine=innodb
- ③ 配置完成,重启即可:
systemctl restart mysqld
11. 安装成功后,可删除.rpm文件
rm * -rf
12. 设置开机启动(可不设)
#开启开机自启动
systemctl enable mysqld
systemctl daemon-reload