在 Ubuntu Server 18.04 離線狀態下安裝 MySQL (Install MySQL on Ubuntu While Offline)
背景
最近一個專案遇到的情況,基於資安政策考量,規定機器不能連外部網路
這樣就不能直接使用sudo apt-get install mysql-serve
來安裝
過程蠻不方便的,記錄一下給遇到同樣處境的人。
作法主要參考了這篇文章: ubuntu16.04 安装离线 mysql5.7.17
但是MySQL 8.0 版本與以前的版本安裝步驟略有不同,會在以下內容中提到
準備安裝包
1. 下載對應的 MySQL 安裝包
本文以Ubuntu Linux 18.04 (x86, 64-bit), DEB Bundle
為例
2. 準備 USB
檢查一下裡面包含這些檔案
把mysql-server_8.0.16–2ubuntu18.04_amd64.deb-bundle.tar
放置到 USB 隨身碟裝置中
註記: 這邊 USB 要先在 Ubuntu 環境中測試看看能不能用,有些需要重新格式化
掛載 USB 隨身碟
1. 先查 USB 隨身碟是被系統辨識成那個裝置
fdisk -l
sda 很可能是硬碟,往下查容量可以找到隨身碟的編號
我們假設為 sdb
2. 建立 USB 隨身碟的掛載點:
mkdir /mnt/usb
3. 掛載 USB 隨身碟
mount -v -t auto /dev/sdb /mnt/usb
-v 顯示資訊
-t auto 讓系統自動分辯檔案系統
4. 到 /mnt/usb 可看到 usb 的內容
解壓縮後檢視一下檔案
註記: 檔名多一個(1)的部份是我有重新下載過
第一次下載時不知道是不是檔案有毀損,出現異常錯誤
如果有遇到也可以試試看重新下載
開始安裝
1. 下載依賴的安裝包
根據參考文章,還需要兩個額外依賴包,可以在這邊下載
https://pkgs.org/download/libaio1
https://pkgs.org/download/libmecab2
2. 安裝 MySQL
sudo dpkg -i mysql-common_8.0.16–2ubuntu18.04_amd64.deb
sudo dpkg-preconfigure mysql-community-server_8.0.16–2ubuntu18.04_amd64.deb
(這步驟會跳出安裝畫面,並且需要輸入 root 密碼)sudo dpkg -i libmysqlclient21_8.0.16–2ubuntu18.04_amd64.deb
sudo dpkg -i libmysqlclient-dev_8.0.16–2ubuntu18.04_amd64.deb
- 參考文章中這一步是安裝
libmysqld-dev_5.7.16–1ubuntu16.04_amd64.deb
但是根據官方版本資訊,8.0 版本已經不需要這個檔案了,所以不需要做這個步驟 - 參考文章中的這步驟是安裝
mysql-community-client_8.0.16–2ubuntu18.04_amd64.deb
不過如果直接安裝會跳出錯誤,顯示缺少依賴,所以在這 8.0 中需要先安裝mysql-community-client-core_8.0.16–2ubuntu18.04_amd64.deb
所以執行sudo dpkg -i mysql-community-client-core_8.0.16–2ubuntu18.04_amd64.deb
sudo dpkg -i mysql-community-client_8.0.16–2ubuntu18.04_amd64.deb
sudo dpkg -i mysql-client_8.0.16–2ubuntu18.04_amd64.deb
sudo dpkg -i mysql-common_8.0.16–2ubuntu18.04_amd64.deb
- 參考文章中的這步驟是安裝
mysql-community-server_8.0.16–2ubuntu18.04_amd64.de
不過如果直接安裝會跳出錯誤,顯示缺少依賴,所以在這 8.0 中需要先安裝mysql-community-server-core_8.0.16–2ubuntu18.04_amd64.deb
所以執行sudo dpkg -i mysql-community-server-core_8.0.16–2ubuntu18.04_amd64.deb
sudo dpkg -i mysql-community-server_8.0.16–2ubuntu18.04_amd64.deb
sudo dpkg -i mysql-server_8.0.16–2ubuntu18.04_amd64.deb
打完這一大坨指令後,就大功告成啦!
最後可以去 MySQL 裡面試一下指令,確認安裝結果mysql -u root -p