2025-12-21

【Database】LinuxMint 22.2 安裝設定 MySQL 8.0 + phpMyadmin

參考資料 ----

ALTER USER Statement


* 這篇筆記是從 Mint Linux 20.3 安裝設定 MySQL 8.0 + phpMyadmin 那篇更新過來的,所以只要能理解、看得懂,部份截圖就沿用 LinuxMint20 的了。😇

VMWare Workstation 開放個人免費使用了!😄

新建一台 VMWare Workstation 虛擬機


看似 Ubuntu/Mint 家族並未棄用 MySQL,採 Mariadb/MySQL 並存的方式;偷懶,這次仍是安裝 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
 
問答式設定,依指示回答,以下是老人家的設定,請依自己需求設定

是否要設定密碼強度規則?


密碼強度選擇 -- 1:中等 -- 8 個字碼以上,其中必須 至少 1 個大寫英文 + 至少 1 個小寫英文 + 至少 1 個數字 + 至少 1 個特殊字元

補充說明:密碼強度2(最強) -- 8 個字碼以上,除了必須滿足中等強度外 + 不能有容易被聯想的字(ex: P@ssw0rd → 可聯想到 password),本來我想設最強,但嚐試了好幾次,都被判定不符合強度2 的規定,只好退而求其次,改選強度 1。



是否移除匿名使用者:我選 y


是否 "不允許" MySQLroot 從遠端登入 MySQL:我選 y


是否移除 test 資料庫(因為稍後設定 MySQL 時要指定 phpMyAdmin 啟動時預設連線的資料庫,所以先留著,不刪)


重新載入權限資料表:我選 y

設定完成


如果重新執行 mysql_secure_installation,上述的步驟會略過一開始的【設定密碼強度】,若想完整重新執行 mysql_secure_installation,則需要先移除密碼強度套件 component_validate_password
 
# 剛安裝好 MySQL 時,預設的管理者帳號是 root,所以, 第 1 次以命令形式登入 MySQL,也不需要密碼
~$ sudo  mysql

# 進到 mysql, 提示字元變成 >
-- 查詢已安裝的元件
> 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 時區
 
~$  sudo  vim  /etc/mysql/mysql.conf.d/mysqld.cnf

[mydqld]
default-time-zone = '+8:00'

:x 存檔離開
 


剛安裝好 MySQL 時,預設的管理者帳號是 root,所以, 第 1 次以命令形式登入 MySQL,也不需要密碼
 
~$  sudo  mysql

-- SQL 指令沒有大/小寫分別,不過慣例上都會以大寫表示
-- (記得要加 分號 做為命令的結束)
>  ALTER  USER  'root'@'localhost'  IDENTIFIED  WITH  CACHING_SHA2_PASSWORD  BY  '新密碼';

-- 退出,密碼才能生效
> EXIT
 
 
-- 這段應該可以考慮刪除
> SELECT  user,  host,  plugin,  authentication_string  FROM  mysql.user  WHERE  user='root';
+------+-----------+-------------+-----------------------+
| user | host      | plugin      | authentication_string |
+------+-----------+-------------+-----------------------+
| root | localhost | auth_socket |                       |
+------+-----------+-------------+-----------------------+
1 row in set (0.00 sec)

 
因為先前的步驟我們指定了密碼強度為 2,所以密碼若不符合這個規則就會出錯

再重新登入就會要求輸入密碼了
 
~$  sudo  mysql  -u  root  -p
# 隨後會要求您輸入密碼
# 參數 -u 是要登入的使用者帳號
# -p 是稍後要輸入密碼


# 另一種登入指令, 但不建議使用, 因為是將密碼以明碼方式顯示
# 注意: -p 跟密碼間沒有空格, 但這麼一來, 您的密碼就顯示在命令列中, 旁人一覽無遺了
~$  sudo  mysql  -u  root  -p密碼


# 登入後, 命令提示字元會變成 >

-- 建立資料庫 
>  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


-- 賦予 admin 最高權限
>  GRANT  ALL  PRIVILEGES  ON  * . *  TO  'admin'@'localhost';

>  exit
 


注意:
MySQL 8.0 預設不再支援 MyISAM




安裝 phpmyadmin
 
~$  sudo  apt  install  phpmyadmin

# 若安裝過程有失誤 或 不滿意, 想重新跑設定步驟, 可執行
~$  sudo dpkg-reconfigure phpmyadmin
 
www







打開本機的瀏覽器(預設是火狐Firefox),在網址列輸 入 http://localhost/phpmyadmin , 注意:不是 https
目前,我們還沒有啟用(加密)安全連線,也無法從別的電腦訪問這個內網






沒有留言:

張貼留言