Ubuntu Server 18.04 離線狀態下安裝 MySQL

在 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為例
MySQL官網下載

2. 準備 USB

檢查一下裡面包含這些檔案
mysql-server_8.0.16–2ubuntu18.04_amd64.deb-bundle.tar
放置到 USB 隨身碟裝置中
mysql-server-deb-bundle

註記: 這邊 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 的內容

解壓縮後檢視一下檔案
USB掛載內容

註記: 檔名多一個(1)的部份是我有重新下載過
第一次下載時不知道是不是檔案有毀損,出現異常錯誤
如果有遇到也可以試試看重新下載


開始安裝

1. 下載依賴的安裝包

根據參考文章,還需要兩個額外依賴包,可以在這邊下載
https://pkgs.org/download/libaio1
https://pkgs.org/download/libmecab2

2. 安裝 MySQL

  1. sudo dpkg -i mysql-common_8.0.16–2ubuntu18.04_amd64.deb
  2. sudo dpkg-preconfigure mysql-community-server_8.0.16–2ubuntu18.04_amd64.deb
    (這步驟會跳出安裝畫面,並且需要輸入 root 密碼)
  3. sudo dpkg -i libmysqlclient21_8.0.16–2ubuntu18.04_amd64.deb
  4. sudo dpkg -i libmysqlclient-dev_8.0.16–2ubuntu18.04_amd64.deb
  5. 參考文章中這一步是安裝libmysqld-dev_5.7.16–1ubuntu16.04_amd64.deb
    但是根據官方版本資訊,8.0 版本已經不需要這個檔案了,所以不需要做這個步驟
    MySQL 8.0官方資訊
  6. 參考文章中的這步驟是安裝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
  7. sudo dpkg -i mysql-community-client_8.0.16–2ubuntu18.04_amd64.deb
  8. sudo dpkg -i mysql-client_8.0.16–2ubuntu18.04_amd64.deb
  9. sudo dpkg -i mysql-common_8.0.16–2ubuntu18.04_amd64.deb
  10. 參考文章中的這步驟是安裝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
  11. sudo dpkg -i mysql-community-server_8.0.16–2ubuntu18.04_amd64.deb
  12. sudo dpkg -i mysql-server_8.0.16–2ubuntu18.04_amd64.deb
    打完這一大坨指令後,就大功告成啦!
    最後可以去 MySQL 裡面試一下指令,確認安裝結果
    mysql -u root -p