因为openEuler 默认仓库推荐的是 MySQL 8.0。由于是离线环境,我们需要提前在联网机上准备好所有依赖包。

以下是为步骤指南:


一、 准备工作(联网环境)

首先,下载官方的 Bundle 包(包含所有核心组件)。

  1. 访问 MySQL 官网下载页

  2. 选择版本:5.7.x(建议最新版如 5.7.44)。

  3. 操作系统选择:Red Hat Enterprise Linux / Oracle Linux

  4. 操作系统版本选择:Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit)

    • 注:虽然是 openEuler,但 MySQL 5.7 官方主要维护的是 EL7 版本,在 openEuler 上通常通过安装 compat-openssl10 来兼容运行。

  5. 下载 Bundle 压缩包(文件名类似 mysql-5.7.xx-1.el7.x86_64.rpm-bundle.tar

    • 网址:https://downloads.mysql.com/archives/community/


二、 清理环境(目标离线机器)

openEuler 预装了 mariadb-connector-c,这会与 MySQL 冲突,必须卸载。

# 检查是否存在冲突包
rpm -qa | grep mariadb
# 卸载它们(根据查出的具体名称卸载)
rpm -e --nodeps mariadb-connector-c

三、 安装步骤

将下载好的 .tar 包拷贝到离线服务器上,并解压:

mkdir /opt/mysql-offline && cd /opt/mysql-offline
# 下面解压命令文件名称要替换为你上传的文件名称
tar -xvf mysql-5.7.xx-1.el7.x86_64.rpm-bundle.tar

1. 安装依赖

MySQL 5.7 在 CentOS 8 上需要旧版的 OpenSSL 兼容库:

从 CentOS 8 安装镜像或官方 Repo 下载对应的 compat-openssl10.rpm拷贝到离线服务器上。

https://mirrors.aliyun.com/centos/8-stream/AppStream/x86_64/os/Packages/compat-openssl10-1.0.2o-3.el8.x86_64.rpm

2. 按顺序安装 RPM 包

安装时必须遵守依赖顺序,建议按以下顺序执行:

安装顺序

文件名关键词

说明

1

common

通用库

2

libs

依赖库

3

client

客户端命令行工具

4

server

数据库服务端

执行命令:

rpm -ivh mysql-community-common-*.rpm
rpm -ivh mysql-community-libs-*.rpm
rpm -ivh mysql-community-client-*.rpm --nodeps
rpm -ivh mysql-community-server-*.rpm
# 1. 链接 ncurses 库 (解决客户端登录问题)
ln -s /usr/lib64/libncurses.so.6 /usr/lib64/libncurses.so.5
ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5

四、 初始化与启动

初始化数据库

为了安全,MySQL 5.7 默认会生成一个临时随机密码。

mysqld --initialize --user=mysql

启动服务

systemctl start mysqld
systemctl enable mysqld

获取临时密码

grep 'temporary password' /var/log/mysqld.log

修改初始密码

使用查到的密码登录并修改:

mysql -u root -p
# 进入后执行 SQL:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
FLUSH PRIVILEGES;
-- 开启远程访问
USE mysql;
UPDATE user SET host = '%' WHERE user = 'root';
FLUSH PRIVILEGES;
-- 退出
EXIT;

如何修改配置文件

打开配置文件

vi /etc/my.cnf

配置常用参数

将配置添加到 [mysqld] 标签下方例如:

[mysqld]
# --- 基础设置 ---
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
port=3306
user=mysql

# --- 字符集设置 (防止中文乱码) ---
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci

# --- 连接与安全 ---
max_connections=500
# 禁用符号链接以防安全风险
symbolic-links=0

# --- 慢查询日志 (可选,方便性能调优) ---
slow_query_log=1
slow_query_log_file=/var/log/mysql-slow.log
long_query_time=2

# --- 区分大小写设置 (可选) ---
# 0: 区分, 1: 不区分。注意:在初始化后修改此项可能导致表找不到
lower_case_table_names=1

[mysql]
default-character-set=utf8mb4

[client]
default-character-set=utf8mb4

生效与验证

修改完配置文件后,必须重启服务才能生效:

# 检查配置文件语法(防止写错导致无法启动)
mysqld --verbose --help > /dev/null

# 重启 MySQL
systemctl restart mysqld

避坑指南

  • 防火墙:如果需要远程连接,记得开启 3306 端口:

    firewall-cmd --add-port=3306/tcp --permanent && firewall-cmd --reload