Ubuntu
已安裝 MySQL 伺服器,但 mysql 命令在 shell 中不要求輸入密碼
我在我的伺服器“mysql Ver 8.0.25-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))”上安裝了以下 mysql 客戶端,並完成了 mysql_secure_installation 步驟並按照此過程的要求設置了密碼。在我以root身份登錄的shell中,我想知道這是否與mysql在我使用put這個命令時不要求密碼有關?基本上,我在終端中輸入 mysql,然後得到 mysql - 不提示輸入任何密碼。
原因是 MySQL 預設為 root 使用者使用套接字身份驗證選項。
如果要禁用它,則需要將
root
帳戶的身份驗證外掛從“Socket authentication”更改為“Native MySQL authentication”。
可能是套接字身份驗證,如果呼叫
mysql
二進製文件的使用者名與 MySQL 的已知使用者名匹配,則 MySQL 基本上會對您進行身份驗證。伺服器端 auth_socket 身份驗證外掛對通過 Unix 套接字文件從本地主機連接的客戶端進行身份驗證。該外掛使用 SO_PEERCRED 套接字選項來獲取有關執行客戶端程序的使用者的資訊。因此,該外掛只能在支持 SO_PEERCRED 選項的系統上使用,例如 Linux。