第一個(gè)你得有一個(gè)外網(wǎng)的IP。。花生殼和88IP做一個(gè)簡(jiǎn)單的域名都可,映射到內(nèi)部MYSQL服務(wù)器上,第二個(gè)看能不能PING的通內(nèi)網(wǎng)服務(wù)器。。如果不行,檢查防火墻是否禁止PING入。。如果還不能PING,把MYSQL服務(wù)器上的防火墻關(guān)掉試試。。最近解決這個(gè)問(wèn)題解決的比較多。。我提PLSQL映射!
成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)介紹好的網(wǎng)站是理念、設(shè)計(jì)和技術(shù)的結(jié)合。成都創(chuàng)新互聯(lián)公司擁有的網(wǎng)站設(shè)計(jì)理念、多方位的設(shè)計(jì)風(fēng)格、經(jīng)驗(yàn)豐富的設(shè)計(jì)團(tuán)隊(duì)。提供PC端+手機(jī)端網(wǎng)站建設(shè),用營(yíng)銷(xiāo)思維進(jìn)行網(wǎng)站設(shè)計(jì)、采用先進(jìn)技術(shù)開(kāi)源代碼、注重用戶(hù)體驗(yàn)與SEO基礎(chǔ),將技術(shù)與創(chuàng)意整合到網(wǎng)站之中,以契合客戶(hù)的方式做到創(chuàng)意性的視覺(jué)化效果。
路由如果沒(méi)有自帶的VPN。。。。請(qǐng)問(wèn)外網(wǎng)怎么找到內(nèi)網(wǎng)的服務(wù)器上??內(nèi)網(wǎng)服務(wù)器必須要在公網(wǎng)上有一個(gè)IP地址啊。所以服務(wù)器必須得裝一個(gè)域名軟件,你那個(gè)在防火墻上的所謂映射只是允許服務(wù)器上的1433口允許對(duì)外開(kāi)發(fā)而已,而且如果外網(wǎng)客戶(hù)端不能上外網(wǎng)的話(huà)。。是訪(fǎng)問(wèn)不了的。這時(shí)你應(yīng)該在目標(biāo)客戶(hù)端所在的路由上允許1344端口的訪(fǎng)問(wèn)。。
1. 允許外網(wǎng)訪(fǎng)問(wèn)MySQL,首先得讓MySQL服務(wù)器有一個(gè)能和外網(wǎng)直接連接的公網(wǎng)的IP,就是不能是10.x.x.x , 172.16.x.y--172.31.x.y, 192.168.x.y的IP地址,
2. 然后在MySQL上執(zhí)行如下語(yǔ)句:
grant all peivilegess on *.* to root@'%' identified by '密碼';
flush privileges;
3. 打開(kāi)防火墻,或配置防火墻允許3306端口通過(guò)
一般情況下,MySQL數(shù)據(jù)庫(kù)服務(wù)器不允許外界直接訪(fǎng)問(wèn),如果要訪(fǎng)問(wèn)的話(huà),可以安裝一個(gè)web頁(yè)面的東西(比如phpmyadmin),通過(guò)訪(fǎng)問(wèn)頁(yè)面的形式來(lái)訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)服務(wù)器。
整體簡(jiǎn)介:
為了安全起見(jiàn)默認(rèn)情況下Mysql數(shù)據(jù)庫(kù)的監(jiān)聽(tīng)地址是127.0.0.1,就是指本機(jī)下的程序才能訪(fǎng)問(wèn)。
監(jiān)聽(tīng)地址是0.0.0.0 ,表示該mysql允許所有IP地址進(jìn)行連接,這是允許遠(yuǎn)程連接的基礎(chǔ)
監(jiān)聽(tīng)地址是127.0.0.1,則代表該mysql只允許所在服務(wù)器本機(jī)連接,外網(wǎng)是無(wú)法連接的
所需工具原料:
Linux,apache,php,mysql
解決方法:
1. 用命令vi 編輯/etc/mysql/my.cnf 如圖:
在[mysqld]節(jié)中增加下面一行:
2. bind-address=0.0.0.0? #全部地址或者指定的ip地址如圖所示
3. 重啟服務(wù)
service mysqld restart
4. Linux服務(wù)器中執(zhí)行如下命令可以查看:??? netstat -nutlp|grep mysql(只查看mysql的監(jiān)聽(tīng)), netstat -tln(查看所有的監(jiān)聽(tīng))是否成功。
1,明確MySQL數(shù)據(jù)庫(kù)內(nèi)網(wǎng)訪(fǎng)問(wèn)地址端口,確保MySQL數(shù)據(jù)庫(kù)服務(wù)正常,在內(nèi)網(wǎng)可以正常訪(fǎng)問(wèn)連接。如我本機(jī)MySQL數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)地址是localhost:3306。
2.內(nèi)網(wǎng)使用花生殼動(dòng)態(tài)域名解析,內(nèi)網(wǎng)服務(wù)器安裝花生殼,并使用它。
3.使用自己的帳號(hào)登錄。如沒(méi)有帳號(hào),“注冊(cè)帳號(hào)”進(jìn)入網(wǎng)站進(jìn)行注冊(cè)帳號(hào)。正常登錄后,會(huì)顯示登錄帳號(hào)下的域名。
4.做映射。在默認(rèn)域名的地方點(diǎn)擊花生殼管理添加映射。點(diǎn)擊當(dāng)前主機(jī)。內(nèi)網(wǎng)任何端口映射,獲取外網(wǎng)隨機(jī)端口,點(diǎn)擊確認(rèn)。
mysql開(kāi)啟遠(yuǎn)程連接:
以 root用戶(hù)登入mysql
GRANT all privileges ON wang.* TO 'wang'@'%' identified by 'wang';
flush privileges;
請(qǐng)點(diǎn)擊輸入圖片描述
修改配置文件
vi /etc/mysql/my.cnf
把bind-address ? ? ? ? ? = 127.0.0.1 ?這行注掉
重啟數(shù)據(jù)庫(kù)
service mysql restart
請(qǐng)點(diǎn)擊輸入圖片描述
本地測(cè)試連接3306端口
telnet 192.168.1.77 3306 ? 若已連通
確定已安裝mysql客戶(hù)端which mysql
/usr/bin/mysql
然后mysql -uwang -h192.168.1.77 -p ?看能否登錄
請(qǐng)點(diǎn)擊輸入圖片描述
外網(wǎng)如何利用網(wǎng)絡(luò)輔助nat123實(shí)現(xiàn)訪(fǎng)問(wèn)內(nèi)網(wǎng)mysql數(shù)據(jù)庫(kù)?
網(wǎng)絡(luò)環(huán)境:動(dòng)態(tài)公網(wǎng)IP。
明確mysql數(shù)據(jù)庫(kù)內(nèi)網(wǎng)訪(fǎng)問(wèn)地址端口,確保mysql數(shù)據(jù)庫(kù)服務(wù)正常,在內(nèi)網(wǎng)可以正常訪(fǎng)問(wèn)連接。內(nèi)網(wǎng)使用nat123動(dòng)態(tài)域名解析。內(nèi)網(wǎng)服務(wù)器安裝nat123客戶(hù)端,并使用它。登陸。進(jìn)入主面板/域名解析列表/添加域名。選擇動(dòng)態(tài)域名解析記錄,使用二級(jí)域名,或自己的域名。鼠標(biāo)放在輸入框有向?qū)崾尽?/p>
請(qǐng)點(diǎn)擊輸入圖片描述
路由器端口映射,路由映射mysql數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)端口。
因?yàn)楣W(wǎng)IP是在路由器上的,外網(wǎng)訪(fǎng)問(wèn)時(shí),需要經(jīng)過(guò)路由,需要在路由器上做端口映射,將內(nèi)網(wǎng)mysql數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)端口打通。路由器端口映射位置:轉(zhuǎn)發(fā)規(guī)則/虛擬服務(wù)器/添加允許外網(wǎng)訪(fǎng)問(wèn)端口和協(xié)議。我的mysql數(shù)據(jù)庫(kù)端口是默認(rèn)的3306,我內(nèi)網(wǎng)對(duì)應(yīng)mysql數(shù)據(jù)庫(kù)主機(jī)的內(nèi)網(wǎng)IP地址是192.168.1.22。
請(qǐng)點(diǎn)擊輸入圖片描述
外網(wǎng)訪(fǎng)問(wèn)時(shí),使用動(dòng)態(tài)解析域名。
在外網(wǎng)訪(fǎng)問(wèn)mysql數(shù)據(jù)庫(kù)時(shí),使用動(dòng)態(tài)解析域名進(jìn)行連接訪(fǎng)問(wèn)。域名是不變的,可以上網(wǎng)即可訪(fǎng)問(wèn),再也不擔(dān)心動(dòng)態(tài)公網(wǎng)IP變化的問(wèn)題。
請(qǐng)點(diǎn)擊輸入圖片描述
設(shè)置mysql服務(wù)允許外網(wǎng)訪(fǎng)問(wèn),修改mysql的配置文件,有的是my.ini,有的是my.cnf【linux】.
1:設(shè)置mysql的配置文件
/etc/mysql/my.cnf
找到 bind-address =127.0.0.1 將其注釋掉;//作用是使得不再只允許本地訪(fǎng)問(wèn);
重啟mysql:/etc/init.d/mysql restart;
2:登錄mysql數(shù)據(jù)庫(kù):mysql -u root -p
mysql use mysql;
查詢(xún)host值:
mysql select user,host from user;
如果沒(méi)有"%"這個(gè)host值,就執(zhí)行下面這兩句:
mysql update user set host='%' where user='root';
mysql flush privileges;
或者也可以執(zhí)行:
mysqlgrand all privileges on *.* to root@'%' identifies by ' xxxx';
其中 第一個(gè)*表示數(shù)據(jù)庫(kù)名;第二個(gè)*表示該數(shù)據(jù)庫(kù)的表名;如果像上面那樣 *.*的話(huà)表示所有到數(shù)據(jù)庫(kù)下到所有表都允許訪(fǎng)問(wèn);
‘%':表示允許訪(fǎng)問(wèn)到mysql的ip地址;當(dāng)然你也可以配置為具體到ip名稱(chēng);%表示所有ip均可以訪(fǎng)問(wèn);
后面到‘xxxx'為root 用戶(hù)的password;
舉例:
任意主機(jī)以用戶(hù)root和密碼mypwd連接到mysql服務(wù)器
mysql GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypwd' WITH GRANT OPTION;
mysql flush privileges;
IP為192.168.1.102的主機(jī)以用戶(hù)myuser和密碼mypwd連接到mysql服務(wù)器
mysql GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.102' IDENTIFIED BY 'mypwd' WITH GRANT OPTION;
mysql flush privileges;