MYSQL遠端登入許可權設定

2021-06-26 11:35:37 字數 2696 閱讀 7496



現象:

1、同一臺電腦在本機上有乙個視覺化軟體sql-front,在虛擬機器上有乙個視覺化軟體sql-front。資料庫伺服器開啟在虛擬機器上。在虛擬機器上使用sql-front,可以正常連線mysql的資料庫,而在本機上無法連線。

2、在虛擬機器上使用netstat -ano|findstr "3306",檢視到3306的埠也就是mysql的埠被占用了

3、在本機上使用ping -(虛擬機器ip),可以ping得通

根據以上的2、3點資訊可以看出,虛擬機器的mysql服務已經正常啟動,且本機可以訪問虛擬機器上的服務。

為什麼會執行不了呢?

在網上查了一些資訊,找到問題是:mysql預設關閉遠端登入許可權,必須自己手動開啟,才能遠端訪問的。

下面是「獸性大發」的博文的資訊:

1. 進入mysql,grant all privileges on *.* to 'root'@'%' identified by '' with grant option;

identified by後跟的是密碼,可設為空。

2. 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;

最後從使用者表內清除使用者:

delete from user where user="test-user";

過載授權表:

flush privileges;

退出mysql資料庫:

exit

五、mysql許可權詳細分類:

全域性管理許可權: 

file: 在mysql伺服器上讀寫檔案。 

process: 顯示或殺死屬於其它使用者的服務執行緒。 

reload: 過載訪問控制表,重新整理日誌等。 

shutdown: 關閉mysql服務。

資料庫/資料表/資料列許可權: 

alter: 修改已存在的資料表(例如增加/刪除列)和索引。 

create: 建立新的資料庫或資料表。 

delete: 刪除表的記錄。 

drop: 刪除資料表或資料庫。 

index: 建立或刪除索引。 

insert: 增加表的記錄。 

select: 顯示/搜尋表的記錄。 

update: 修改表中已存在的記錄。

特別的許可權: 

all: 允許做任何事(和root一樣)。 

usage: 只允許登入--其它什麼也不允許做。

其實,昨天在使用sql server2005時,也遇到了相似的問題。sql server2005需要設定網路適配才行,需要開啟埠,具體的解決方法,看我的

sqlserver2005服務啟動埠未開啟的問題



MYSQL遠端登入許可權設定

mysql預設關閉遠端登入許可權,如下操作允許使用者在任意地點登入 1.進入mysql,grant all privileges on to root identified by with grant option identified by後跟的是密碼,可設為空。2.flush privilege...

MYSQL遠端登入許可權設定

mysql預設關閉遠端登入許可權,如下操作允許使用者在任意地點登入 1.進入mysql,grant all privileges on to root identified by with grant option identified by後跟的是密碼,可設為空。2.flush privilege...

MYSQL遠端登入許可權設定

mysql預設關閉遠端登入許可權,如下操作允許使用者在任意地點登入 1.進入mysql,grant all privileges on to root identified by with grant option identified by後跟的是密碼,可設為空。2.flush privilege...