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