如何在 Ubuntu 18.04 安裝 MySQL 8.0

MySQL 官方下載的網站:MySQL Community Downloads
https://dev.mysql.com/downloads/mysql/

下載 MySQL 提供的套件管理設定檔至目前的資料夾:

curl -OL https://repo.mysql.com//mysql-apt-config_0.8.14-1_all.deb

上面的的下載地址可以在MySQL 官方網站取得。

.deb 的軟體套件包需以 dpkg 指令安裝:

sudo dpkg -i mysql-apt-config*

安裝的畫面裡,Config 設定選擇切換至 MySQL v8.0 的版本(須選擇 v8.0版本),切換到 OK 就可以離開設定畫面。

再來以下列指令更新本機的軟體套件版本:

sudo apt-get update


在現行資料夾刪除裡刪除已下載的 .deb 檔案:

sudo rm mysql-apt-config*

安裝 MySQL 8.0:

sudo apt-get install mysql-server

安裝的第一個問題是mysql root 的密碼,第二個問題是官方建議使用較複雜的密碼。

進行安全設置,可透過以下指令:

mysql_secure_installation

在出現的第二個問題:「選擇是否禁止 root 遠程登入」,建議輸入”Y”,讓 root 只能准許從 localhost 連線,以防從主機外部的連線進來。

新增 MySQL 本機帳號和密碼:

新增 maxuser 及其密碼 max12345 (範例):

mysql> CREATE USER 'maxuser'@'localhost' IDENTIFIED BY 'max12345';
mysql> GRANT ALL PRIVILEGES ON . TO 'newuser'@'localhost';
mysql> FLUSH PRIVILEGES;

新增 MySQL 遠端帳號和密碼:

這個情況發生在database server 和執行程式的 client 在不同台電腦時會才會用到。新增遠端 remote_user 及其密碼 max12345 (範例):

mysql> CREATE USER 'remote_user'@'%' IDENTIFIED BY 'max12345';
mysql> GRANT ALL PRIVILEGES ON . TO 'newuser'@'%';
mysql> FLUSH PRIVILEGES;

把舊的 5.7 版的 mysql 的 mysql database 直接搬到 mysql 8.0 裡會出現很多奇怪的錯誤,像是:

ERROR 1726 (HY000): Storage engine 'MyISAM' does not support system tables. [mysql.db]

Error Code: 1728. Cannot load from mysql.db. The table is probably corrupted

還有會造成無法使用 create user 指令。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *