文章目录
- 前言
- 一. 卸载不需要的环境
- 二. 获取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
结束语
感谢你的阅读
如果觉得本篇文章对你有所帮助的话,不妨点个赞支持一下博主,拜托啦,这对我真的很重要。