[特殊字符] CentOS 7 离线安装 MySQL 5.7 实验
🐧 CentOS 7 离线安装 MySQL 5.7 实验
针对企业无互联网环境的系统,设计了如何在 CentOS 7 系统中,使用一台可以联网的主机(NodeA)为另一台无法联网的主机(NodeB)安装 MySQL 5.7 数据库及其依赖。
🧩 一、实验环境介绍
节点名称 | 主机名 | 操作系统 | IP配置 |
---|---|---|---|
🌐NodeA | centos7_online | CentOS 7 (x86_64) | NAT: 192.168.234.153 HostOnly: 192.168.75.131 |
📴NodeB | centos7_offline | CentOS 7 (x86_64) | HostOnly: 192.168.75.132 |
📌 说明:使用 VMware 设置虚拟机,NodeA 联网,NodeB 与 NodeA 在同一内网中通信。
🔧 二、NodeA 配置及准备工作(联网主机)
1️⃣ 配置静态 IP 地址
NAT接口(ens32):
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=noDEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens32
UUID=03175594-4270-41a1-abfb-51a8872467cf
DEVICE=ens32ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.234.153
NETMASK=255.255.255.0
GATEWAY=192.168.234.2
DNS1=192.168.234.2
HostOnly接口(ens33):
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens32
DEVICE=ens32ONBOOT=yes
IPADDR=192.168.75.131
GATEWAY=192.168.75.1
PREFIX=24
重启网络服务并修改主机名:
systemctl restart network
hostnamectl set-hostname online.hy
centos7_offline 的配置也参考这一步,配置 ens32,IP更改为 132:
ONBOOT=yes
IPADDR=192.168.75.132
GATEWAY=192.168.75.1
PREFIX=24systemctl restart network
hostnamectl set-hostname offline.hy
2️⃣ 替换 YUM 源(推荐使用阿里云镜像)
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
sudo yum clean all && sudo yum makecache
🛠️ 三、在 NodeA 下载 MySQL 离线安装包
1️⃣ 安装辅助工具
sudo yum install -y yum-utils createrepo epel-release
2️⃣ 创建存放文件的目录
mkdir -p ~/offline-mysql57
cd ~/offline-mysql57
3️⃣ 配置 MySQL 官方源
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
sudo rpm -ivh mysql57-community-release-el7-11.noarch.rpm
sudo yum-config-manager --enable mysql57-community
4️⃣ 下载 MySQL 5.7 所有依赖包
repotrack --arch=x86_64 --download_path=. \mysql-community-server \mysql-community-client \mysql-community-common \mysql-community-libs \mysql-community-libs-compat
5️⃣ 生成本地 YUM 仓库索引
createrepo .
6️⃣ 打包并传输至 NodeB
tar czvf mysql57_offline_centos7.tar.gz *
scp mysql57_offline_centos7.tar.gz root@192.168.75.132:/root/
💻 四、在 NodeB 安装 MySQL 5.7(离线主机)
1️⃣ 解压接收到的安装包
mkdir -p ~/offline-mysql57
cd ~/offline-mysql57
mv /root/mysql57_offline_centos7.tar.gz .
tar xzvf mysql57_offline_centos7.tar.gz
2️⃣ 禁用原有远程仓库,配置本地离线源
sudo yum-config-manager --disable '*' || \sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.reposudo tee /etc/yum.repos.d/mysql57-local.repo > /dev/null <<EOF
[mysql57-local]
name=Local MySQL 5.7 Repo
baseurl=file://$HOME/offline-mysql57
enabled=1
gpgcheck=0
EOFsudo yum clean all && sudo yum repolist
3️⃣ 安装 MySQL 服务
sudo yum install -y mysql-community-server
4️⃣ 查看安装结果(可选)
yum info mysql-community-server.x86_64
rpm -qa | grep mysql
5️⃣ 启动服务并设置开机自启动
sudo systemctl enable mysqld --now
6️⃣ 获取初始 root 密码
sudo grep 'temporary password' /var/log/mysqld.log
7️⃣ 登录并修改 root 密码
mysql -uroot -p
# 输入上面查到的临时密码mysql> set global validate_password_policy=LOW;
mysql> set global validate_password_length=6;
mysql> set password = password('123456');
mysql> flush privileges;
🔓 8️⃣ 添加远程访问权限
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> select host,user from user;
+-----------+---------------+
| host | user |
+-----------+---------------+
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+---------------+
3 rows in set (0.00 sec)mysql> update user set host='%' where user='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0mysql> select host,user from user;
+-----------+---------------+
| host | user |
+-----------+---------------+
| % | root |
| localhost | mysql.session |
| localhost | mysql.sys |
+-----------+---------------+
3 rows in set (0.00 sec)mysql> exit;
Bye
✅ 五、实践总结
📌 离线安装 MySQL 5.7 的关键步骤:
- 使用
repotrack
下载完整 RPM 依赖 - 使用
createrepo
构建本地仓库索引 - 打包
.tar.gz
并通过 SCP/U盘发送至 NodeB - 在 NodeB 禁用远程源,配置本地 YUM 仓库
- 安装并初始化 MySQL 服务
- 修改 root 密码并添加远程访问权限