MySQL 用户创建及设置
添加 MySQL 用戶有兩種方法
1、在 mysql 數據庫中的 user 表添加新用戶
以下為添加用戶的的實例,用戶名為guest,密碼為guest123,并授權用戶可進行 SELECT, INSERT 和 UPDATE操作權限:
root@host# mysql -u root -p Enter password:******* mysql> use mysql; Database changedmysql> INSERT INTO user (host, user, password, select_priv, insert_priv, update_priv) VALUES ('localhost', 'guest', PASSWORD('guest123'), 'Y', 'Y', 'Y'); Query OK, 1 row affected (0.20 sec)mysql> FLUSH PRIVILEGES; Query OK, 1 row affected (0.01 sec)mysql> SELECT host, user, password FROM user WHERE user = 'guest'; +-----------+---------+------------------+ | host | user | password | +-----------+---------+------------------+ | localhost | guest | 6f8c114b58f2ce9e | +-----------+---------+------------------+ 1 row in set (0.00 sec)在添加用戶時,請注意使用MySQL提供的 PASSWORD() 函數來對密碼進行加密。 你可以在以上實例看到用戶密碼加密后為: 6f8c114b58f2ce9e.
注意:在 MySQL5.7 中 user 表的 password 已換成了authentication_string。
注意:password() 加密函數已經在 8.0.11 中移除了,可以使用 MD5() 函數代替。
注意:在注意需要執行?FLUSH PRIVILEGES?語句。 這個命令執行后會重新載入授權表。
如果你不使用該命令,你就無法使用新創建的用戶來連接mysql服務器,除非你重啟mysql服務器。
你可以在創建用戶時,為用戶指定權限,在對應的權限列中,在插入語句中設置為 'Y' 即可,用戶權限列表如下:
- Select_priv
- Insert_priv
- Update_priv
- Delete_priv
- Create_priv
- Drop_priv
- Reload_priv
- Shutdown_priv
- Process_priv
- File_priv
- Grant_priv
- References_priv
- Index_priv
- Alter_priv
2、通過SQL的 GRANT 命令
以下命令會給指定數據庫TUTORIALS添加用戶 zara ,密碼為 zara123 。
root@host# mysql -u root -p Enter password:******* mysql> use mysql; Database changedmysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP-> ON TUTORIALS.*-> TO 'zara'@'localhost'-> IDENTIFIED BY 'zara123';以上命令會在mysql數據庫中的user表創建一條用戶信息記錄。
注意:?MySQL 的SQL語句以分號 (;) 作為結束標識。
使用GRANT命令可能會遇到下面的報錯
1)ERROR 1064 (42000)
mysql> GRANT ALL PRIVILEGES ON . TO 'ly'@'localhost' WITH GRANT OPTION;ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '. TO 'ly'@'localhost' WITH GRANT OPTION' at line 1這個報錯的原因是在SQL 語句中使用了mysql 的保留字key,上述語句的中ON后面的.就是保留key,把.替換成具體的數據庫名稱即可
2)ERROR 1046 (3D000)
mysql> GRANT ALL PRIVILEGES ON mysql TO `ly`@`localhost` WITH GRANT OPTION; ERROR 1046 (3D000): No database selected沒有使用具體的數據庫,使用use命令切換數據庫
mysql> use mysql Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -ADatabase changed mysql> GRANT ALL PRIVILEGES ON mysql TO `ly`@`localhost` WITH GRANT OPTION; Query OK, 0 rows affected, 1 warning (0.01 sec)?
總結
以上是生活随笔為你收集整理的MySQL 用户创建及设置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 二叉树算法
- 下一篇: docker中创建MySQL及在外部使用