開啟 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 ted@
'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 root@
"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 root@
"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 test-user@
"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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。