一、前言
在Liunx系统中,有几种常用的安装软件的方式:
1、使用源代码进行部署安装:主要适用于软件开发的私有化部署或者开源软件的部署,常常需要编译后进行安装部署;
2、使用RPM包进行安装:RPM是一个安装包格式(可以类比于Windows的exe,mac的dmg),适用于linux系统进行安装部署;
3、使用包管理器进行安装:包管理器,分别用于不同的Linux发行版来安装、更新和管理软件包,比如Yum包管理器适用于Redhat系统发行版,Apt包管理器适用于Debian系统发行版。
在我们安装软件时,常常使用后两种方式进行安装。当你的Linux系统能连接互联网时,推荐使用第三种方式进行安装,这样你只需要知道安装的软件名后,使用包管理器命令快速下载安装包依赖进行下载安装并部署。
但我们在企业实际业务部署中,尤其是Linux环境中经常遇到内网环境,无法连接互联网,这时候我们需要使用第二种方式,提前下载安装包,手动进行安装部署,本文章将使用手动安装的方式进行MySQL的安装。
二、准备
1、Centos7.9系统 4核8G配置的服务器一台
2、Mysql安装包;下载地址:https://downloads.mysql.com/archives/community/
a.选择软件版本,根据自己要求选择版本,5.7选择5.7.44(5.7的最后一个版本),8.0选择8.0.42(8.0的最后一个版本)

b.根据自己的服务器操作系统选择对应的安装包,如果目录中没有你系统可选择通用版本(Generic Linux),我系统是Centos7则选择红帽系列。

c.选择系统兼容版本,Centos7的选择7版本的进行下载


d.下载rpm安装包上传到服务器
三、安装MySQL
1、首先查看一下是否已安装过MySQL或mariadb
rpm -qa | grep mysql
rpm -qa | grep mariadb
Centos系统中自带mariadb需要进行移除操作

rpm -e --nodeps mariadb-libs //卸载mariadb

2、上传解压mysql压缩包

创建一个文件夹将压缩包解压到该文件夹
mkdir /usr/local/mysql //创建文件夹
tar -xvf mysql-8.0.42-1.el7.x86_64.rpm-bundle.tar -C /usr/local/mysql //解压文件并存放
进入文件夹查看解压文件

3、安装RPM文件(按需要按照以下顺序安装rpm软件包)
MySQL必要安装项(以下四个软件包是必须要装的,其他的按需求进行安装)
rpm -ivh mysql-community-common
rpm -ivh mysql-community-libs
rpm -ivh mysql-community-client
rpm -ivh mysql-community-serve
版本安装顺序
8.0安装顺序
rpm -ivh mysql-community-common
rpm -ivh mysql-community-client-plugins
rpm -ivh mysql-community-libs
rpm -ivh mysql-community-client
rpm -ivh mysql-community-icu-data-files
rpm -ivh mysql-community-devel
rpm -ivh mysql-community-server
5.7安装顺序
rpm -ivh mysql-community-common
rpm -ivh mysql-community-libs
rpm -ivh mysql-community-devel
rpm -ivh mysql-community-libs-compat
rpm -ivh mysql-community-client
rpm -ivh mysql-community-serve
本次安装是8.0版本进行安装
rpm -ivh mysql-community-common-8.0.42-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.42-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.42-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.42-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.42-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.42-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.42-1.el7.x86_64.rpm

4、安装成功后,查看MySQL版本
MySQL -V

四、配置MySQL
1、查看并启动MySQL服务
systemctl status mysqld.service //查看mysql服务
systemctl start mysqld.service //启动mysql服务

2、其他配置MySQL命令
systemctl stop mysqld.service //停止MySQL服务
systemctl disable mysqld.service //永久停止MySQL服务
systemctl enable mysqld.service //开机自启MySQL服务
systemctl restart mysqld.service //重启MySQL服务
3、查看并修改密码
第一次运行MySQL服务,会生成一个初始密码,并第一次进入MySQL时可以免密进行登录
cat /var/log/mysqld.log | grep 'password' 查看初始密码

登录MySQL
mysql -u root -p //免密登录
mysql -u root -p'yD17ksvokI<.' //带密码登录

进入数据库后进行修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'TS112233'; //修改密码
FLUSH PRIVILEGES; // 重新加载权限表,确保新密码立即生效。
修改密码注意事项:

a、8.0以上版本启用了密码复杂度校验(默认开启)需要满足以下条件:
- 至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符。
- 长度≥8位。
b、可以按照要求修改为复杂密码,也可以配置密码策略方式来进行降低安全策略(不推荐)
SET GLOBAL validate_password.policy=0; //关闭密码策略
SET GLOBAL validate_password.policy=LOW; //设置密码低安全等级
SET GLOBAL validate_password.length=4; //设置密码最小长度设为4
4、创建用户并赋权
CREATE USER 'admin_remote'@'%' IDENTIFIED WITH mysql_native_password BY 'SecurePassWord!@#$'; //创建专用远程管理员(不建议使用root用户名)
GRANT ALL PRIVILEGES ON *.* TO 'admin_remote'@'%' WITH GRANT OPTION; //赋予远程管理员所有数据库(*.*)的所有权限(包括创建/删除用户、管理权限等)
FLUSH PRIVILEGES; // 重新加载权限表,确保新密码立即生效。
如果有一个yudaodb数据库赋予用户a的权限,可以参照以下命令:
GRANT ALL PRIVILEGES ON yudaodb.* TO 'a'@'%';
如果使用root用户设置为远程登录
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Ts112233.';
CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Ts112233.';
FLUSH PRIVILEGES; //使更改生效
ALTER USER | 修改现有用户的属性(而非创建新用户)。若用户不存在会自动创建(取决于版本配置)。 |
'root'@'%' | - root:用户名- %:匹配任意主机名/IP地址(即允许从所有设备登录)。 |
IDENTIFIED WITH mysql_native_password | 强制使用基于明文密码的原生认证插件(适用于多数客户端驱动)。 |
查看登录用户和主机

SELECT User, Host FROM mysql.user; //查看所有用户及登录主机
SELECT User, Host FROM mysql.user WHERE User = 'root'; //查看root用户及登录主机
验证远程连接(另开一个终端测试)
mysql -h <数据库服务器IP> -u root -p
五、补充
1、安装mysql-community-devel缺少依赖

联网解决方式:yum install openssl-devel -y
无网解决方式:本地下载openssl进行上传解压。

运行命令
./config shared zlib

# 进入源码目录
cd /usr/local/software/openssl-1.0.2h# 重新生成依赖关系
make depend# 编译源码
make# 安装到系统目录(需 root 权限)
make install


3658

被折叠的 条评论
为什么被折叠?



