MySQL 無密碼登入解決方案:Ubuntu 18.04
阿新 • • 發佈:2020-12-25
MySQL 安裝後,發現可以無密碼登入,例如 mysql -u root
,或 mysql -u root -p
,不輸入密碼也可以登入;同時,程式碼中使用 root 使用者和密碼卻無法登入。我上網查了一下,發現是沒有啟用 mysql_native_password plugin 的問題。下面是一個簡短的教程使得 MySQL 必須使用密碼才可以登入。
登入 MySQL:
sudo mysql -u root
注意到這裡沒有使用密碼。
下面執行以下命令,開啟 mysql_native_password:
USE mysql; UPDATE user SET plugin='mysql_native_password' WHERE User='root'; FLUSH PRIVILEGES; exit;
重啟 MySQL:
sudo systemctl restart mysql.service
重置 root 密碼:
sudo mysql_secure_installation
建議配置如下,其中會有一個設定密碼強度的選項,選擇 Low:
Enter current password for root (enter for none): Would you like to setup VALIDATE PASSWORD plugin?: Y Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0 Set root password?: Y New password: Enter password Re-enter new password: Repeat password Remove anonymous users?: Y Disallow root login remotely?: Y Remove test database and access to it?: Y Reload privilege tables now?: Y
現在無密碼登入已經不允許了,輸入:
sudo mysql -u root -p
輸入密碼登入。