在 MySQL 和 MariaDB 中,可以使用 socket 身份驗證,而不是傳統的用户名和密碼組合。這種方法既安全又方便,因為它使用的是操作系統的用户憑證。
什麼是 Socket 身份驗證?
Socket 身份驗證允許使用 Unix 或 Linux 用户憑證連接到數據庫,這對於安全環境非常有用。這簡化了登錄過程,消除了頻繁用户輸入密碼的要求。
Step 1: Create a Unix/Linux User
如果您還沒有一個 UNIX/Linux 用户,則創建一個新的 UNIX/Linux 用户。
sudo adduser myuser
Step 2: Log in to MySQL/MariaDB
接下來,使用 root 用户登錄到您的 MySQL/Mariadb 服務器
sudo mysql -u root -p
Step 3: Create User with Socket Authentication
創建一個使用 auth_socket 身份驗證的新的 MySQL/Mariadb 用户
CREATE USER 'myuser'@'localhost' IDENTIFIED WITH auth_socket;
Step 4: Grant Privileges
向新用户授予必要的權限,例如:授予特定數據庫的所有權限。
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
Step 5: Apply Changes
刷新 privileges 使應用更改生效
FLUSH PRIVILEGES;
Step 6: Verify the Connection
登錄 MySQL / Mariadb,嘗試使用 Socket 身份驗證登錄
mysql -u myuser
如果一切設置正確,您應該能夠連接數據庫,而不需要提示輸入密碼。
我的開源項目
- course-tencent-cloud(酷瓜雲課堂 - gitee倉庫)
- course-tencent-cloud(酷瓜雲課堂 - github倉庫)