標籤:mysql 登入許可權
開啟 MySQL 的遠程登陸帳號有兩大步:
1、確定伺服器上的防火牆沒有阻止 3306 連接埠。
MySQL 預設的連接埠是 3306 ,需要確定防火牆沒有阻止 3306 連接埠,否則遠程是無法通過 3306 連接埠串連到 MySQL 的。
如果您在安裝 MySQL 時指定了其他連接埠,請在防火牆中開啟您指定的 MySQL 使用的連接埠號碼。
如果不知道怎樣設定您的伺服器上的防火牆,請向您的伺服器管理員諮詢。
2、增加允許遠端連線 MySQL 使用者並授權。
1)首先以 root 帳戶登陸 MySQL
在 Windows 主機中點擊開始菜單,運行,輸入“cmd”,進入控制台,MySQL 的 bin 目錄下,然後輸入下面的命令。
在 Linux 主機中在命令提示行下輸入下面的命令。
> MySQL -uroot -p123456
123456 為 root 使用者的密碼。
2)建立遠程登陸使用者並授權
> grant all PRIVILEGES on discuz.* to [email protected]
‘123.123.123.123‘
identified by
‘123456‘
;
上面的語句表示將 discuz 資料庫的所有許可權授權給 ted 這個使用者,允許 ted 使用者在 123.123.123.123 這個 IP 進行遠程登陸,並設定 ted 使用者的密碼為 123456 。
下面逐一分析所有的參數:
all PRIVILEGES 表示賦予所有的許可權給指定使用者,這裡也可以替換為賦予某一具體的許可權,例如:select,insert,update,sqlserver/42947.htm target=_blank >
delete
,create,drop 等,具體許可權間用“,”半形逗號分隔。
discuz.* 表示上面的許可權是針對於哪個表的,discuz 指的是資料庫,後面的 *
表示對於所有的表,由此可以推理出:對於全部資料庫的全部表授權為“*.*”,對於某一資料庫的全部表授權為“資料庫名.*”,對於某一資料庫的某一表授
權為“資料庫名.表名”。
ted 表示你要給哪個使用者授權,這個使用者可以是存在的使用者,也可以是不存在的使用者。
123.123.123.123 表示允許遠端連線的 IP 地址,如果想不限制連結的 IP 則設定為“%”即可。
123456 為使用者的密碼。
執行了上面的語句後,再執行下面的語句,方可立即生效。
>
flush
privileges;
遠程登入mysql一些常用的程式碼片段,大家可參考一下。
一、允許root使用者在任何地方進行遠程登入,並具有所有庫任何操作許可權,具體操作如下:
在本機先使用root使用者登入mysql:
mysql -u root -p
"youpassword"
進行授權操作:
mysql>GRANT ALL PRIVILEGES ON *.* TO
‘root‘
@
‘%‘
IDENTIFIED BY
‘youpassword‘
WITH GRANT OPTION;
重載授權表:
FLUSH
PRIVILEGES;
退出mysql資料庫:
exit
二、允許root使用者在一個特定的IP進行遠程登入,並具有所有庫任何操作許可權,具體操作如下:
在本機先使用root使用者登入mysql:
mysql -u root -p
"youpassword"
進行授權操作:
GRANT ALL PRIVILEGES ON *.* TO [email protected]
"172.16.16.152"
IDENTIFIED BY
"youpassword"
WITH GRANT OPTION;
重載授權表:
FLUSH
PRIVILEGES;
退出mysql資料庫:
exit
三、允許root使用者在一個特定的IP進行遠程登入,並具有所有庫特定操作許可權,具體操作如下:
在本機先使用root使用者登入mysql:
mysql -u root -p
"youpassword"
進行授權操作:
GRANT select,insert,update,
delete
ON *.* TO [email protected]
"172.16.16.152"
IDENTIFIED BY
"youpassword"
;
重載授權表:
FLUSH
PRIVILEGES;
退出mysql資料庫:
exit
四、刪除使用者授權,需要使用REVOKE命令,具體命令格式為:
REVOKE privileges ON 資料庫[.表名] FROM user-name;
具體執行個體,先在本機登入mysql:
mysql -u root -p
"youpassword"
進行授權操作:
GRANT select,insert,update,
delete
ON TEST-DB TO [email protected]
"172.16.16.152"
IDENTIFIED BY
"youpassword"
;
再進行刪除授權操作:
REVOKE all on TEST-DB from test-user;
****註:該操作只是清除了使用者對於TEST-DB的相關授權許可權,但是這個“test-user”這個使用者還是存在。
最後從使用者表內清除使用者:
DELETE
FROM user WHERE user=
"test-user"
;
重載授權表:
FLUSH
PRIVILEGES;
退出mysql資料庫:
exit
本文出自 “小屁孩兒” 部落格,請務必保留此出處http://865516915.blog.51cto.com/9037379/1913279
mysql 登入許可權