標籤:
Grant 添加 MySql 使用者2009-04-03 14:40
我安裝的版本:
mysql> select version();
+------------+
| version() |
+------------+
| 5.0.22-log |
+------------+
1 row in set (0.05 sec)
添加使用者:
mysql> grant select,update,insert,delete on *.* to [email protected] identified by "jimmy";
Query OK, 0 rows affected (0.00 sec)
mysql> select host,user,password from user;
+-----------+--------+-------------------------------------------+
| host | user | password |
+-----------+--------+-------------------------------------------+
| localhost | root | |
| AS3 | root | |
| AS3 | | |
| localhost | | |
| AS3 | yuanjl | 550185cd02026208 |
| localhost | yuanjl | 550185cd02026208 |
| AS3 | jimmy | *1E7F320B8F580AADC02E8A70285E46A8CFDA3359 |
+-----------+--------+-------------------------------------------+
7 rows in set (0.00 sec)
mysql> quit
Bye
[[email protected] mysql-5.0.22]# mysql -pjimmy -u jimmy -h AS3 mysql
ERROR 1251: Client does not support authentication protocol requested by server; consider upgrading MySQL client
[r[email protected] mysql-5.0.22]# mysql -u root -h AS3 mysql
Welcome to the MySQL monitor. Commands end with ; or /g.
Your MySQL connection id is 36 to server version: 5.0.22-log
Type ‘help;‘ or ‘/h‘ for help. Type ‘/c‘ to clear the buffer.
mysql> update user set password=old_password(‘jimmy‘) where user=‘jimmy‘ and host=‘AS3‘;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
[[email protected] mysql-5.0.22]# mysql -pjimmy -u jimmy -h AS3 mysql
Welcome to the MySQL monitor. Commands end with ; or /g.
Your MySQL connection id is 37 to server version: 5.0.22-log
Type ‘help;‘ or ‘/h‘ for help. Type ‘/c‘ to clear the buffer.
mysql>
2、Mysql添加使用者
個人教訓,在添加Mysql帳號的時候,一定要主義使用者名稱和主機(local和%)均要被引號引起,否則命令即錯
命令方式的.注意每行後邊都跟個 ; 表示一個命令語句結束.
格式:grant select on 資料庫.* to “使用者名稱”@“登入主機” identified by "密碼";
例1、增加一個使用者test1密碼為abc,讓他可以在任何主機上登入,並對所有資料庫有查詢、插入、修改、刪除的許可權。首先用以root使用者連入MYSQL,然後鍵入以下命令:
grant select,insert,update,delete on *.* to “test1”@"%" Identified by "abc";
補充所有許可權語句:
由例1得: 將執行許可權(select,insert,....)改為all privileges,即表示擁有所有許可權,包括建立資料庫許可權,刪除資料庫,已經不局限於在一個資料庫內操作
GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ IDENTIFIED BY ‘123456‘;
例1(非補充)中增加的使用者是十分危險的,因為你的主機是%,%即代表任意位置的主機,而local即詞義"本地",假如,某個人想知道test1的密 碼,那麼他就可以在internet上的任何一台電腦上串連到你的mysql資料庫並對你的資料可以為所欲為了,解決辦法見例2。
根據例1補充語句,此語句盡量不要在Mysql伺服器上使用,如果你的伺服器處於託管或遠端地帶,如果你需要遠端管理Mysql伺服器,而由不想通過超級 終端登入到伺服器上,那麼你只好用此語句,但要清楚一件事,即你能使用此方法串連伺服器,其他人也可以,所以要保管好你的mysql密碼
例2、 增加一個使用者test2密碼為abc,讓他只可以在localhost上登入,並可以對資料庫mydb進行查詢、插入、修改、刪除的操作 (localhost指本地主機,即MYSQL資料庫所在的那台主機),這樣使用者即使用知道test2的密碼,他也無法從internet上直接存取資料 庫,只能通過MYSQL主機上的web頁來訪問了。
grant select,insert,update,delete on mydb.* to “test2”@localhost identified by "abc";
如果你不想test2有密碼,可以再打一個命令將密碼消掉。
grant select,insert,update,delete on mydb.* to “test2”@localhost identified by "";
grant select,insert,update,delete on dez.* to “test2”@"%" identified by "123456"; --------------------------- 資料庫版本類型: MYSQL 5.0.x 社區版本
資料庫重要命令:mysqldump ;mysql
系統內容: Windows Xp Sp2
樣本資料庫: Demo (內部表可自己任意建立)
資料庫使用者名稱: root (也可以是具有管理操作許可權的使用者名稱)
資料庫登入密碼: dbuserkey
測試環境中mysql已在環境變數中設定成功即 可在命令列中輸入mysql啟動mysql資料庫引擎
A,完全匯出Demo所有資料和結構 (完全備份)
在任目錄中(比如 D:/mydb )建立批次檔backup.bat,內容如下:
mysqldump -uroot -pdbuserkey --add-locks --opt Demo>D:/mydb/Demo.sql;
@pause
B,完全匯入Demo所有資料和結構 (完全恢複)
在與backup.bat同目錄中建立批次檔restore.bat 內容如下:
mysql -uroot -pdbuserkey demo<D:/mydb/Demo.sql;
@pause
C,測試
開啟mysql資料庫引擎 net start mysql
運行 A中批處理 會看到D:/mydb下產生Demo.sql
然後執行 Drop Database Demo命令刪除Demo資料庫
建立Demo資料庫 Create Database Demo;
運行 B 中比處理 即可恢複所有資料和結構
D,常用命令
登入或串連mysql資料庫服務
mysql -h主機地址 -u使用者名稱 -p使用者密碼;
推出mysql 資料庫連接
Exit
停止本地mysql資料庫服務
Net stop mysql
修改密碼
mysqladmin -u使用者名稱 -p舊密碼 password 新密碼;
顯示資料庫列表
Show Database;
使用資料庫
Use DatabaseName;
顯示當前選擇資料庫
Select Database();
開啟表
Show TableName;
顯示資料表的結構
Describe TableName;
當前資料庫包含的表資訊:
Show Tables; (注意:最後有個s)
建立資料庫
Create DataBase databaseName;
建立表
Use databaseName;
Create Table tableName (欄位設定列表);
刪庫和刪表
Drop Database databaseName;
Drop Table tableName;
將表中記錄清空
Delete From tableName;
表名字更改
Rename Table tableA to tableB;
SQL結構化查詢語句命令見mysql doc 文檔
Mysql建立刪除使用者
Grant select,insert,update,delete on *[(資料庫)].* to 使用者名稱@登入主機 identified by "密碼"
命令方式的.注意每行後邊都跟個 ; 表示一個命令語句結束.
格式:grant select on 資料庫.* to 使用者名稱@登入主機 identified by "密碼"
==以下來自網路==
例1,增加一個使用者test1密碼為abc,讓他可以在任何主機上登入,並對所有資料庫有查詢,插入,修改,刪除的許可權.首先用以root使用者連入MYSQL,然後鍵入以下命令:
grant select,insert,update,delete on *.* to [email protected]"%" Identified by "abc";
例1增加的使用者是十分危險的,你想如某個人知道test1的密碼,那麼他就可以在internet上的任何一台電腦上登入你的mysql資料庫並對你的資料可以為所欲為了,解決辦法見例2.
例 2,增加一個使用者test2密碼為abc,讓他只可以在localhost上登入,並可以對資料庫mydb進行查詢,插入,修改,刪除的操作 (localhost指本地主機,即MYSQL資料庫所在的那台主機),這樣使用者即使用知道test2的密碼,他也無法從internet上直接存取資料 庫,只能通過MYSQL主機上的web頁來訪問了.
grant select,insert,update,delete on mydb.* to [email protected] identified by "abc";
如果你不想test2有密碼,可以再打一個命令將密碼消掉.
grant select,insert,update,delete on mydb.* to [email protected] identified by "";
這樣就建立了一個名為:phplamp 密碼為:1234 的使用者.
然後登入一下.
mysql>exit;
mysql -u phplamp -p
輸入密碼
mysql>登入成功
2.為使用者授權.
//登入MYSQL(有ROOT許可權).我裡我以ROOT身份登入.
mysql -u root -p
密碼
//首先為使用者建立一個資料庫(phplampDB)
mysql>create database phplampDB;
//授權phplamp使用者擁有phplamp資料庫的所有許可權.
>grant all privileges on phplampDB.* to [email protected] identified by ‘1234‘;
//重新整理系統許可權表
mysql>flush privileges;
mysql>其它操作
/*
如果想指定部分許可權給一使用者,可以這樣來寫:
mysql>grant select,update on phplampDB.* to [email protected] identified by ‘1234‘;
//重新整理系統許可權表.
mysql>flush privileges;
*/
3.刪除使用者.
mysql -u root -p
密碼
mysql>Delete FROM user Where User="phplamp" and Host="localhost";
mysql>flush privileges;
//刪除使用者的資料庫
mysql>drop database phplampDB;
4.修改指定使用者密碼.
mysql -u root -p
密碼
mysql>update mysql.user set password=password(‘新密碼‘) where User="phplamp" and Host="localhost";
mysql>flush privileges;
5.列出所有資料庫
mysql>show database;
6.切換資料庫
mysql>use ‘資料庫名‘;
7.列出所有表
mysql>show tables;
8.顯示資料表結構
mysql>describe 表名;
9.刪除資料庫和資料表
mysql>drop database 資料庫名;
mysql>drop table 資料表名;
10. 顯示表的結構
describe "tabaleName";
cmd下串連mysql:
mysql -uroot -p 斷行符號 注意密碼不要打在-p後面
linux Grant 添加 MySql 使用者