在MySQL上創建用戶
一個快速的逐步指南,介紹如何在MySQL上創建用戶。
在安裝MySQL之後,您將擁有 root
用戶。
這是您可能使用的用戶來測試MySQL是否正常工作,但不應該將其用作其他用途的用戶。
為什麼呢?因為它具有過於強大的權限。
有了強大的權力就有了巨大的責任(說的是蜘蛛俠的叔叔)。
特別是,如果犯錯,就會有巨大的危險。
相反,您應該創建特定用戶,這些用戶只有執行其工作所需的權限,並且不再多。
與使用Linux或任何Unix系統一樣,您不希望使用 root
用戶,而是使用您自己的用戶帳戶。
要創建新用戶,使用 root
用戶連接到MySQL:
1 | mysql -u root -p |
然後使用以下命令:
1 | CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>'; |
例如,要創建一個名為 test_user
,密碼為 test_password12A
的用戶,運行以下命令:
1 | CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'test_password12A'; |
命令應返回一行顯示 Query OK, 0 rows affected (X.XX sec)
:
如果您使用了無效密碼,系統將返回類似於 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
的錯誤消息。
在這種情況下,錯誤消息表示密碼不夠複雜,因為安裝MySQL時我告訴它使用某個密碼策略。
太好了!現在已經創建了用戶,我們可以使用該用戶連接到MySQL。
從命令行退出,只需輸入 QUIT
,然後輸入:
1 | mysql -u test_user -p |
現在如果我嘗試創建一個數據庫,將收到一個錯誤消息 ERROR 1044 (42000): Access denied for user 'test_user'@'localhost' to database 'testing'
:
為什麼呢?因為用戶沒有權限創建新數據庫。
我們將在另一個教程中介紹如何處理權限問題。
值得一提的是我們用於創建用戶的字符串 @'localhost'
。這告訴MySQL該用戶只能從本地主機連接。這在測試和與任何連接到MySQL的應用程序在同一台計算機上運行時是可以的。
當這不是真的,您需要手動輸入該用戶將從哪個IP地址連接,或使用 %
通配符:
1 | CREATE USER 'test_user'@'%' IDENTIFIED BY 'test_password12A'; |
最後,我想展示如何刪除我們創建的用戶:
1 | DROP USER 'test_user'@'localhost'; |
tags: [“mysql”, “user creation”, “permissions”]