🐧 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 密碼并添加遠程訪問權限