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 指令。