今天我們要學習的是如何用MySQL 命令的方式來對賬號進行管理,我們大家都知道在實際應用中MySQL 命令可以完成多種任務,以下的文章主要是對用MySQL 命令的方式來對賬號進行管理的具體內容介紹。
手冊上說 “GRANT語句允許系統管理員創建MySQL用戶賬戶,授予權限。”。但我無論怎麼樣也沒有辦法用這個命令創建用戶賬號。
我想增加一個新的測試用戶,命令如下:
- MySQL> GRANT ALL ON qyoa.* TO chy@localhost INDENTIFIED BY "123456";
- ERROR 1046 (3D000): No database selected
後來上網找資料才發現這樣寫是錯的,改成:
- MySQL> GRANT ALL ON qyoa.* TO chy@localhost INDENTIFIED BY "123456";
- 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 'INDEN TIFIED BY "123456"' at line 1
網上有人也遇到這樣的錯誤,有人如些回答:MySQL.user MySQL命令庫應該選上.因為你執行的操作是修改權限表... 這個明白了你就可以直接操作這個表了.呵呵
http://www.phpchina.com/html/54/t-51354.html)
可能是本人愚鈍,怎麼也看不明白這話什麼意思。
只好一遍又一遍的試
- MySQL> use MySQL;
- MySQL> GRANT ALL ON qyoa.* TO chy@localhost INDENTIFIED BY "123456";
錯誤提示同上面一樣。
後來折騰了一兩個小時,實現找不到問題出在那裡。只好換過一種實現方式,
- MySQL> CREATE USER chy@localhost IDENTIFIED BY '123456';
- MySQL> grant all on qyoa.* to chy@localhost;
終於建好用戶和分配好權限。難道只可以創建好賬號才可以分配權限?
後來的我猜測得到證實,真的是要創建好賬號才可以分配權限。杯具啊!就這樣白白浪費了我好幾個小時。
- MySQL> GRANT ALL ON qyoa.* TO chy@localhost INDENTIFIED BY "123456";
運行成功!
如果沒有創建用戶帳號,直接執行
- MySQL> grant all on qyoa.* to chy@localhost;
會用如下錯誤信息
- ERROR 1133(42000) can 't find any matching row in the user table
或許是我本機的設置有問題吧,今天再執行
- MySQL>GRANT ALL ON qyoa.* TO chy1@localhost identified by "123456";
又可以正常執行了,搞不懂什麼原因。難不成真的是我人品問題?
但將語句改成如下執行又出現問題:
- MySQL> grant all on qyoa.* to chy@localhost;
- ERROR 1133(42000) can 't find any matching row in the user table
翻查MySQL命令手冊得到如下資料:
”SQL服務器模式
模式定義MySQL應支持哪些SQL語法,以及應執行哪種數據驗證檢查。你可以用SELECT @@sql_mode語句查詢當前的模式。
- · NO_AUTO_CREATE_USER
防止GRANT自動創建新用戶,除非還指定了密碼。
你還可以在啟動後用SET [SESSION|GLOBAL] sql_mode='modes'語句設置sql_mode變量來更改SQL模式。
設置 GLOBAL變量時需要擁有SUPER權限,並且會影響從那時起連接的所有客戶端的操作。設置SESSION變量只影響當前的客戶端。
任何客戶端可以隨時更改自己的會話 sql_mode值。“
原來是設定了 sql 服務器模式。 sql_mode值 是保存在 my.ini 中,可以直接打開該文件修改後再重啟服務,也可以用
SET SESSION sql_mode='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION' 進行更改。
測試:
- MySQL>SET SESSION sql_mode='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION';
後再執行
- MySQL> grant all on qyoa.* to chy@localhost;
創建空密碼新賬號成功!以上的相關內容就是對MySQL 賬戶管理 今天學習怎樣用 MySQL 命令的方式來管理賬號的介紹,望你能有所收獲。