第一中方法:比較詳細
潮安網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應式網(wǎng)站設(shè)計等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)公司2013年至今到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。
以下的文章主要介紹的是MySQL 數(shù)據(jù)庫開啟遠程連接的時機操作流程,其實開啟MySQL
數(shù)據(jù)庫遠程連接的實際操作步驟并不難,知識方法對錯而已,今天我們要向大家描述的是MySQL 數(shù)據(jù)庫開啟遠程連接的時機操作流程。
1、d:\MySQL\bin\MySQL -h localhost -u root
這樣應該可以進入MySQL服務器
復制代碼
代碼如下:
MySQLupdate user set host = '%' where
user = 'root';
MySQLselect host, user from user;
2、MySQLGRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY
'mypassword' WITH GRANT OPTION
予任何主機訪問數(shù)據(jù)的權(quán)限
3、MySQLFLUSH
PRIVILEGES
修改生效
4、MySQLEXIT
退出MySQL服務器
這樣就可以在其它任何的主機上以root身份登錄啦!
以上的相關(guān)內(nèi)容就是對MySQL 數(shù)據(jù)庫開啟遠程連接的介紹,望你能有所收獲。
第二種方法:
1、在控制臺執(zhí)行 mysql -u root -p
mysql,系統(tǒng)提示輸入數(shù)據(jù)庫root用戶的密碼,輸入完成后即進入mysql控制臺,這個命令的第一個mysql是執(zhí)行命令,第二個mysql是系統(tǒng)數(shù)據(jù)名稱,不一樣的。
2、在mysql控制臺執(zhí)行 GRANT ALL PRIVILEGES ON *.* TO ‘root'@'%' IDENTIFIED BY
‘MyPassword' WITH GRANT OPTION;
3、在mysql控制臺執(zhí)行命令中的 ‘root'@'%' 可以這樣理解:
root是用戶名,%是主機名或IP地址,這里的%代表任意主機或IP地址,你也可替換成任意其它用戶名或指定唯一的IP地址;'MyPassword'是給授權(quán)用戶指定的登錄數(shù)據(jù)庫的密碼;另外需要說明一點的是我這里的都是授權(quán)所有權(quán)限,可以指定部分權(quán)限,GRANT具體操作詳情見:
4、不放心的話可以在mysql控制臺執(zhí)行 select host, user from user; 檢查一下用戶表里的內(nèi)容
1、改表法。
可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql后,更改
"mysql"
數(shù)據(jù)庫里的
"user"
表里的
"host"
項,從"localhost"改稱"%"
mysql
-u
root
-pvmwaremysqluse
mysql;
mysqlupdate
user
set
host
=
'%'
where
user
=
'root';
mysqlselect
host,
user
from
user;
2、授權(quán)法。例如,你想myuser使用mypassword從任何主機連接到mysql服務器的話。
GRANT
ALL
PRIVILEGES
ON
*.*
TO
'myuser'@'%'IDENTIFIED
BY
'mypassword'
WI
TH
GRANT
OPTION;
如果你想允許用戶myuser從ip為192.168.1.6的主機連接到mysql服務器,并使用mypassword作為密碼
GRANT
ALL
PRIVILEGES
ON
*.*
TO
'myuser'@'192.168.1.3'IDENTIFIED
BY
'mypassword'
WITH
GRANT
OPTION;
我用的第一個方法,剛開始發(fā)現(xiàn)不行,在網(wǎng)上查了一下,少執(zhí)行一個語句
mysqlFLUSH
RIVILEGES
使修改生效,就可以了
另外一種方法:
在安裝mysql的機器上運行:
1、d:\mysql\bin\mysql
-h
localhost
-u
root
//這樣應該可以進入MySQL服務器
2、mysqlGRANT
ALL
PRIVILEGES
ON
*.*
TO
'root'@'%'WITH
GRANT
OPTION
//賦予任何主機訪問數(shù)據(jù)的權(quán)限
3、mysqlFLUSH
PRIVILEGES
//修改生效
4、mysqlEXIT
//退出MySQL服務器
這樣就可以在其它任何的主機上以root身份登錄啦。
mysql開啟遠程連接:
以 root用戶登入mysql
GRANT all privileges ON wang.* TO 'wang'@'%' identified by 'wang';
flush privileges;
請點擊輸入圖片描述
修改配置文件
vi /etc/mysql/my.cnf
把bind-address ? ? ? ? ? = 127.0.0.1 ?這行注掉
重啟數(shù)據(jù)庫
service mysql restart
請點擊輸入圖片描述
本地測試連接3306端口
telnet 192.168.1.77 3306 ? 若已連通
確定已安裝mysql客戶端which mysql
/usr/bin/mysql
然后mysql -uwang -h192.168.1.77 -p ?看能否登錄
請點擊輸入圖片描述
外網(wǎng)如何利用網(wǎng)絡輔助nat123實現(xiàn)訪問內(nèi)網(wǎng)mysql數(shù)據(jù)庫?
網(wǎng)絡環(huán)境:動態(tài)公網(wǎng)IP。
明確mysql數(shù)據(jù)庫內(nèi)網(wǎng)訪問地址端口,確保mysql數(shù)據(jù)庫服務正常,在內(nèi)網(wǎng)可以正常訪問連接。內(nèi)網(wǎng)使用nat123動態(tài)域名解析。內(nèi)網(wǎng)服務器安裝nat123客戶端,并使用它。登陸。進入主面板/域名解析列表/添加域名。選擇動態(tài)域名解析記錄,使用二級域名,或自己的域名。鼠標放在輸入框有向?qū)崾尽?/p>
請點擊輸入圖片描述
路由器端口映射,路由映射mysql數(shù)據(jù)庫訪問端口。
因為公網(wǎng)IP是在路由器上的,外網(wǎng)訪問時,需要經(jīng)過路由,需要在路由器上做端口映射,將內(nèi)網(wǎng)mysql數(shù)據(jù)庫訪問端口打通。路由器端口映射位置:轉(zhuǎn)發(fā)規(guī)則/虛擬服務器/添加允許外網(wǎng)訪問端口和協(xié)議。我的mysql數(shù)據(jù)庫端口是默認的3306,我內(nèi)網(wǎng)對應mysql數(shù)據(jù)庫主機的內(nèi)網(wǎng)IP地址是192.168.1.22。
請點擊輸入圖片描述
外網(wǎng)訪問時,使用動態(tài)解析域名。
在外網(wǎng)訪問mysql數(shù)據(jù)庫時,使用動態(tài)解析域名進行連接訪問。域名是不變的,可以上網(wǎng)即可訪問,再也不擔心動態(tài)公網(wǎng)IP變化的問題。
請點擊輸入圖片描述
Mysql默認是不可以通過遠程機器訪問的,通過下面的配置可以開啟遠程訪問
在MySQL Server端:
執(zhí)行mysql 命令進入mysql 命令模式,
Sql代碼
mysql use mysql;
mysql GRANT ALL ON *.* TO admin@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION;
#這句話的意思 ,允許任何IP地址(上面的 % 就是這個意思)的電腦 用admin帳戶 和密碼(admin)來訪問這個MySQL Server
#必須加類似這樣的帳戶,才可以遠程登陸。 root帳戶是無法遠程登陸的,只可以本地登陸
mysql use mysql;
mysql GRANT ALL ON *.* TO admin@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION;
#這句話的意思 ,允許任何IP地址(上面的 % 就是這個意思)的電腦 用admin帳戶 和密碼(admin)來訪問這個MySQL Server
#必須加類似這樣的帳戶,才可以遠程登陸。 root帳戶是無法遠程登陸的,只可以本地登陸
那么如何遠程訪問呢?
在另一臺MySQL 客戶端(裝有mysql程序包的pc ,windows或者是linux均可)
執(zhí)行命令:
Sql代碼
mysql -h172.21.5.29 -uadmin -padmin 即可了
//172.21.5.29就是MySQL Server的IP地址,admin admin就是剛才在 172.21.5.29上設(shè)置的遠程訪問帳戶
mysql -h172.21.5.29 -uadmin -padmin 即可了
//172.21.5.29就是MySQL Server的IP地址,admin admin就是剛才在 172.21.5.29上設(shè)置的遠程訪問帳戶
引用
mysql use mysql;
mysql GRANT ALL ON *.* TO admin@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION;
#這句話的意思 ,允許任何IP地址(上面的 % 就是這個意思)的電腦 用admin帳戶 和密碼(admin)來訪問這個MySQL Server
#必須加類似這樣的帳戶,才可以遠程登陸。 root帳戶是無法遠程登陸的,只可以本地登陸
我發(fā)現(xiàn)一個問題, 如果上面的命令你執(zhí)行完畢, 你在 本地就是localhost , 執(zhí)行 :
Sql代碼
mysql -hlocalhost -uadmin -padmin
mysql -hlocalhost -uadmin -padmin
結(jié)果是失敗的。
原來 上面的 % 竟然不包括localhost
所以你還必須加上這樣的 命令
mysqlGRANT ALL ON *.* TO admin@'localhost' IDENTIFIED BY 'admin' WITH GRANT OPTION;
開啟 MySQL 的遠程登陸帳號有兩大步:
確定服務器上的防火墻沒有阻止 3306 端口。
MySQL 默認的端口是 3306 ,需要確定防火墻沒有阻止 3306 端口,否則遠程是無法通過 3306 端口連接到 MySQL 的。
如果在安裝 MySQL 時指定了其他端口,請在防火墻中開啟指定的 MySQL 使用的端口號。