參考資料 ----
* 這篇筆記是從 Mint Linux 20.3 安裝設定 MySQL 8.0 + phpMyadmin 那篇更新過來的,所以只要能理解、看得懂,部份截圖就沿用 LinuxMint20 的了。😇
VMWare Workstation 開放個人免費使用了!😄
新建一台 VMWare Workstation 虛擬機
偷懶,這次仍是安裝 MySQL,作業系統為 LinuxMint 22.2 MATE, MySQL 8.0。
安裝完成後,設定 "更新管理員" 的 "軟體來源" -- 鏡像站改為國內 國家高速運算中心(https://www.nchc.org.tw/)。
安裝 vim(Mint 預設已裝 vi,這個適合 80 鍵鍵盤,老人家用不慣 😓)
~$ sudo apt install vim
暫時關閉防火牆
~$ sudo ufw disable # 確認防火牆沒有啟動 ~$ sudo ufw status
安裝 MySQL,Mint 會連帶安裝其他相關的套件
~$ sudo apt install mysql-server
安裝完成後,MySQL server 應該會自行啟動執行
# 下述 3 個指令只是順手筆記, 不執行 # 查詢 MySQL 狀態 ~$ sudo systemctl status mysql # 啟動 mysql ~$ sudo systemctl start mysql # 停止 mysql ~$ sudo systemctl stop mysql
安裝後,進行安全性設定
~$ sudo mysql_secure_installation
問答式設定,依指示回答,以下是老人家的設定,請依自己需求設定
是否要設定密碼強度規則?
補充說明:密碼強度2(最強) -- 8 個字碼以上,除了必須滿足中等強度外 + 不能有容易被聯想的字(ex: P@ssw0rd → 可聯想到 password),本來我想設最強,但嚐試了好幾次,都被判定不符合強度2 的規定,只好退而求其次,改選強度 1。
是否 "不允許" MySQL 的 root 從遠端登入 MySQL:我選 y
設定完成

打開本機的瀏覽器(預設是火狐Firefox),在網址列輸 入 http://localhost/phpmyadmin , 注意:不是 https
是否移除匿名使用者:我選 y
是否移除 test 資料庫(因為稍後設定 MySQL 時要指定 phpMyAdmin 啟動時預設連線的資料庫,所以先留著,不刪)
重新載入權限資料表:我選 y
如果重新執行 mysql_secure_installation,上述的步驟會略過一開始的【設定密碼強度】,若想完整重新執行 mysql_secure_installation,則需要先移除密碼強度套件 component_validate_password
# 剛安裝好 MySQL 時,預設的管理者帳號是 root,所以, 第 1 次以命令形式登入 MySQL,也不需要密碼 ~$ sudo mysql # 進到 MySQL, 提示字元變成 > -- SQL 指令沒有大/小寫分別,不過慣例上都會以大寫表示 -- (記得要加 分號 做為命令的結束) -- 查詢已安裝的元件 > SELECT * FROM mysql.component; +--------------+--------------------+------------------------------------+ | component_id | component_group_id | component_urn | +--------------+--------------------+------------------------------------+ | 1 | 1 | file://component_validate_password | +--------------+--------------------+------------------------------------+ 1 row in set (0.00 sec) -- 刪除密碼強度套件 > UNINSTALL COMPONENT 'file://component_validate_password'; -- 退出 mysql > EXIT
設定 MySQL 時區為台北(Taipei)
~$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf [mydqld] ... ... default-time-zone = '+8:00' :x 存檔離開
# 再次登入 MySQL ~$ sudo mysql -- 建立資料庫(順手筆記, 不執行) > CREATE 資料庫名稱; -- 列出目前 MySQL 已建立的使用者帳號(順手筆記, 不執行) > SELECT user FROM mysql.user; -- 新建一個使用者 admin, 給後續安裝的 phpMyAdmin > CREATE USER 'admin'@'localhost' IDENTIFIED WITH caching_sha2_password BY '密碼'; -- 預設的密碼格式為 caching_sha2_password -- 其他格式有:mysql_native_password, sha256_password, ... -- 不過官方還是推薦 caching_sha2_password -- 賦予 admin 最高權限 > GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION; > exit
注意:
安裝 phpmyadmin
~$ sudo apt install phpmyadmin # 若安裝過程有失誤 或 不滿意, 想重新跑設定步驟, 可執行 ~$ sudo dpkg-reconfigure phpmyadmin
因為這版的設定步驟跟之前不同,所以先選 <否>
再執行 dpkg-reconfigure phpmyadmin 重新設定

phpmyadmin 的帳戶改為我們在前面建立的 admin@localhost
目前,我們還沒有啟用(加密)安全連線,也無法從別的電腦訪問這個內網
為 MySQL 的 root 帳戶加上密碼
~$ sudo mysql -- SQL 指令沒有大/小寫分別,不過慣例上都會以大寫表示 -- (記得要加 分號 做為命令的結束) > ALTER USER 'root'@'localhost' IDENTIFIED WITH CACHING_SHA2_PASSWORD BY '新密碼'; -- 退出,密碼才能生效 > EXIT -- 從此之後登入 MySQL 就會要求您輸入密碼 ~$ sudo mysql -u root -p # 參數 -u 是要登入的使用者帳號 # -p 是稍後要輸入密碼 # 上面的指令按下 ENTER 後, 系統就會提示您要輸入密碼 # 另一種登入指令, 但不建議使用, 因為是將密碼以明碼方式顯示 # 注意: -p 跟密碼間沒有空格 # 但這麼一來, 您的密碼就顯示在命令列中, 旁人一覽無遺了 ~$ sudo mysql -u root -p密碼 # 登入 MySQL 後, 提示字元變成 > -- 檢視 root 帳戶 > SELECT user, host, plugin, authentication_string FROM mysql.user WHERE user='root'; +------+-----------+-----------------------+------------------------------------------------------------------------+ | user | host | plugin | authentication_string | +------+-----------+-----------------------+------------------------------------------------------------------------+ | root | localhost | caching_sha2_password | $A$005$__HLm.}1*#ZzXhae2kc4K7Cvfg7TR0UxCxBKY2y2Ji9qieVGaXzMWL4Fn9 | +------+-----------+-----------------------+------------------------------------------------------------------------+ 1 row in set (0.00 sec)















沒有留言:
張貼留言