文章目录
- 前言
- 一. 卸载不需要的环境
- 二. 获取MySQL的yum源
- 三. 安装MySQL和启动
- 四. 尝试登录MySQL
- 方法1:获取临时root密码
- 方法2:没有密码
- 方法3:配置文件
- 五. 简单配置
- 结束语
前言
本篇文章是基于云服务器;Linux:Centos7.6版本的MySQL安装
一. 卸载不需要的环境
一些云服务器可能会配备MySQL,或者mariadb(MySQL的一个开源分支)
原先配置的MySQL和mariadb会对后续的安装造成影响,所以建议先进行删除。
1.关闭网络服务器
数据库其实是一种服务器,我们先查看是否存在该网络服务器
ps axj | grep mysql查看是否有MySQL运行
ps axj | grep mariadb查看是否有mariadb运行

如图是没有的情况,显示出来的是grep这个进程
如果存在mysqld或者mariadb.servicez这个进程,就将其关闭

systemctl stop mysqld关闭mysqld
systemctl stop mariadb.service关闭mariadb
2. 删除安装包
rpm -qa显示所有的安装包
rpm -qa | grep mysql在所有安装包中过滤出mysql的安装包
rpm -qa | grep mariadb在所有安装包中过滤出miaradb的安装包
rpm -qa | grep mysql | xargs yum -y remove将mysql的安装包都删除
rpm -qa | grep mariadb | xargs yum -y remove将mariadb的安装包都删除
xargs可以将前两个命令获取的安装包拼到 remove 后,在删除过程中,会有询问选项,-y可以取消这一询问
ls /etc/my.cnf没有该配置文件,表示删除干净,有,则删除即可
ls /var/lib/mysql/原先mysql的数据都存放在这个路径下,可删可不删
二. 获取MySQL的yum源
我们选择下载的yum源,最好是和自己的操作系统所匹配的
cat /etc/redhat-release查看操作系统的版本
接下来就是选择适合的版本
获取官方MySQL的yum源

因为网页的问题,版本号无法展示完整,我们可以右键,选择“查看页面源代码”

MySQL的版本建议选择mysql57

el表示是Centos,7-10是Centos的版本,表示7.10
因为博主是Centos7.6,没有直接匹配的,但是el7.rpm中包含了Centos7的所有版本,在后续安装,yum会自动帮我们匹配最适配的版本
下载后将.rpm文件放在桌面或者其他能找到的地方
打开Linux,切换到root用户,可以创建一个MySQL的目录(方便日后的管理),进入该目录
将刚刚下载在Windows的.rpm文件拿到Linux中
rz将Windows的文件下载到Linux中


这个.rpm文件里面就是yum源
ls /etc/yum.repos.d/ -l查看yum源
rpm -ivh解压并拷贝
可以看到,多了两个yum源
其中,在mysql-community.repo中,是各个版本的MySQL

yum会帮我们自动选择最适配的MySQL版本
三. 安装MySQL和启动
yum源更新好后,就可以开始安装了、(注意切换到root用户)
yum install -y mysql-community-server安装
如果安装过程中出现如下报错
Failing package is: mysql-community-client-5.7.39-1.el7.x86_64
GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
该报错表示GPG的秘钥过期
使用如下命令更新秘钥,然后重新安装
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
安装成功后,检查三样东西
ls /etc/my.cnf配置文件my.cnf是否存在
which mysqld
which mysql
mysqld是服务端,mysql是客户端,所以mysqld是在sbin(超级用户root)目录下的
启动mysql网络服务器
systemctl start mysqld
四. 尝试登录MySQL
登录MySQL:
mysql -h 127.0.0.1 -P 3306 -u root -p
-h 127.0.0.1-h登录的部署了MySQL的主机的IP
-P 3306-P端口号
-u root-u 登录的用户
-p输入密码
省略-h表示登录本地的MySQL
省略-P表示使用默认的端口号
简化后登录MySQL的命令:mysql -uroot -p

但是此时会要求我们输入密码。
有三种解决方法
方法1:获取临时root密码
grep 'temporary password' /var/log/mysqld.log
此方式不一定可以,因为较新版本的MySQL可能没有临时密码
方法2:没有密码
可能安装的MySQL没有临时密码,root默认没有密码,试着直接登录(密码直接按回车)
方法3:配置文件
/etc/my.cnf是MySQL的配置文件,我们需要在其最后添加一个选项
vim /etc/my.cnf
在[mysql]最后添加:skip-grant-tables保存并退出
添加选项后,我们需要重启mysqld,配置文件才会生效。
systemctl restart mysqld
等同于 先systemctl stop mysqld再systemctl start mysqld
重启时可能会遇到如下报错,重启失败
Job for mysqld.service failed because the control process exited with error code. See “systemctl status mysqld.service” and “journalctl -xe” for details.
解决方法参见该博客
mysql启动失败,报错:Job for mysqld.service failed
五. 简单配置
同样是配置在/etc/my.cnf文件中
port=3306更改端口号(可选)
character-set-server=utf8更改编码方式
default-storage-engine=innodb使用storage-engine这个存储引擎
设置开机自启动(Linux)
systemctl enable mysqld
systemctl daemon-reload
结束语
感谢你的阅读
如果觉得本篇文章对你有所帮助的话,不妨点个赞支持一下博主,拜托啦,这对我真的很重要。










