云服务器外网访问MySql全程实录
1.云服務(wù)器申請(qǐng)
最近在給一個(gè)小企業(yè)做個(gè)報(bào)價(jià)系統(tǒng),C#WPF框架開(kāi)發(fā),桌面程序。由于用戶可能經(jīng)常出差,更換電腦,因此考慮將程序的數(shù)據(jù)庫(kù)放到外網(wǎng)服務(wù)器上,每次程序使用需要登錄驗(yàn)證,有點(diǎn)類似QQ的方法。這里有人說(shuō)為什么不直接做成web,桌面應(yīng)用已經(jīng)落伍了。確實(shí)如此,原因主要是這個(gè)企業(yè)的報(bào)價(jià)系統(tǒng)的前端交互太多,一堆的javascript代碼,還有一堆的word報(bào)表輸入輸出,做成web太過(guò)麻煩。因此還是決定做成桌面應(yīng)用程序。由于訪問(wèn)量和并發(fā)性并不大,因此考慮性能一般的云服務(wù)器就可以了。
下面是我購(gòu)買的云服務(wù)器基本信息:操作系統(tǒng)是windows server 2012 R2 ?64位中文版(我是小白,還是喜歡在windows下面搗鼓搗鼓,感覺(jué)簡(jiǎn)單實(shí)惠,大牛看不過(guò)去的忍忍吧)
云服務(wù)器我喜歡采用遠(yuǎn)程登錄界面的方式,登錄后和操作普通的windows電腦基本沒(méi)區(qū)別。可以完全把這臺(tái)電腦想象成你手頭的筆記本電腦,唯一的區(qū)別在于這臺(tái)電腦有一個(gè)公共的外網(wǎng)IP。想要上傳文件什么的直接在本地電腦和服務(wù)器上copy文件就可以,相當(dāng)簡(jiǎn)單方便,并且云服務(wù)器也可以直接裝軟件,和普通電腦沒(méi)什么區(qū)別。
2.服務(wù)器上MySql安裝與基本使用
(1)下載MySql
下載網(wǎng)址:點(diǎn)擊打開(kāi)鏈接
我建議下載早期的版本,晚點(diǎn)的版本好像配置的時(shí)候找不到My-default.ini,后面配置不是很好弄。我下載的版本是MySql 5.6.40 ?win64。為了方便大家下面給出一個(gè)我使用的版本,下面是鏈接。
點(diǎn)擊打開(kāi)鏈接
下載后需要修改my.ini文件。直接在官網(wǎng)下載后期MySql的人按照其他人的教程可能需要找到MyDefault.ini文件,但是后期版本里面是沒(méi)有這個(gè)文件的,雖然我也參考了一些教程,但是感覺(jué)有點(diǎn)麻煩,所以我還是用了早起的5.6.40版本。
接下來(lái),我把整個(gè)文件夾解壓后放到云服務(wù)器C盤(pán)下面的toolplace文件夾下面。如果你放在了其他位置,需要修改my.ini文件里面的basedir和datadir目錄,注意這里凡是用\路徑的都要用\\,修改完保存即可。
(2)修改系統(tǒng)變量
windows下面修改系統(tǒng)環(huán)境變量(不會(huì)的自己網(wǎng)上百度下如何修改環(huán)境變量),在path里面添加";C:\toolplace\mysql-5.6.40-winx64\bin" ? 這里注意前面的分號(hào),用來(lái)跟其他環(huán)境變量分隔開(kāi)。
修改系統(tǒng)環(huán)境變量主要是為了方便使用MySql命令,如果不這么干的話,需要cd一直到bin文件夾下面,才能使用相關(guān)MySql命令。
(3)MySql安裝、啟動(dòng)和修改密碼
點(diǎn)擊開(kāi)始菜單,搜索框輸入cmd,然后右鍵以管理員身份運(yùn)行,輸入 :
mysqld install回車后會(huì)英文提示安裝成功。
然后輸入啟動(dòng)命令:
net start mysql可以看到啟動(dòng)成功了。若要關(guān)閉mysql服務(wù),使用下面的命令:
net stop mysql在服務(wù)啟動(dòng)的狀態(tài)下,需要登錄MySql,才能繼續(xù)操作數(shù)據(jù)庫(kù),登錄命令如下:
mysql -u root -p這里會(huì)提示輸入密碼,直接回車就可以。(因?yàn)閯傃b完默認(rèn)情況下沒(méi)有密碼),但是我們實(shí)際情況下需要設(shè)置密碼,設(shè)置方式如下,首先退出當(dāng)前賬戶,退出命令:
exit
這里設(shè)置新密碼的命令:
mysqladmin -u root -p password 123456
按回車即可。123456即為你想要設(shè)置的密碼,然后會(huì)提示輸入密碼,把123456再填一遍,這樣的話就修改成功了。
然后用
mysql -u root -p登陸,接著輸入剛才的密碼即可。進(jìn)入后可以在Mysql編輯狀態(tài)下輸入 ?
show databases;
再按回車即可看到下圖顯示的部分已由的數(shù)據(jù)庫(kù)。上面的命令注意 ? 最后的分號(hào)也是需要輸入的
至此,已經(jīng)在云服務(wù)器上安裝完MySql了。
3.服務(wù)器上Navicat安裝與基本使用
在命令行下面進(jìn)行數(shù)據(jù)庫(kù)操作是完全可以的,但是對(duì)于不熟悉命令行的人來(lái)說(shuō)可能不是很方便。這里我們采用Navicat來(lái)連接,管理、測(cè)試數(shù)據(jù)庫(kù)狀態(tài)。Navicat的安裝這里不再重復(fù)敘述,可以網(wǎng)上自行百度。這里為了方便,同樣給出破解版的下載地址:點(diǎn)擊打開(kāi)鏈接
下載后解壓copy到云服務(wù)器上,不需要安裝,直接運(yùn)行即可。
先創(chuàng)建MySql連接,隨便輸入一個(gè)連接名,輸入剛才MySql數(shù)據(jù)庫(kù)密碼,點(diǎn)擊確認(rèn),即可查看MySql里面的數(shù)據(jù)庫(kù)。關(guān)于如何使用Navicat操作數(shù)據(jù)庫(kù),這里不再過(guò)多介紹,比較簡(jiǎn)單。
4.MySql修改外網(wǎng)訪問(wèn)權(quán)限
為了使得云服務(wù)器上的MySql可以給外網(wǎng)進(jìn)行訪問(wèn),我們這里用cmd然后輸入
mysql -u root -p再輸入密碼重新登錄MySql
輸入
use mysql;
進(jìn)入mysql數(shù)據(jù)庫(kù),然后更改root用戶權(quán)限:
UPDATE user SET host = '%' WHERE host = '127.0.0.1';
這樣,所有用戶這樣一來(lái)所有IP地址均可以作為root用戶,可以使用SELECT host,user FROM user查詢當(dāng)前用戶表。
對(duì)所有root用戶授權(quán):
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
這里“123456”為MySql密碼,也可以對(duì)指定IP的用戶授權(quán):
GRANT ALL PRIVILEGES ON *.* TO 'root'@'指定的IP' IDENTIFIED BY '123456' WITH GRANT OPTION;
然后重載授權(quán)表:
FLUSH PRIVILEGES;
至此,就配置好MySql的外網(wǎng)訪問(wèn)權(quán)限了。
4.測(cè)試MySql外網(wǎng)訪問(wèn)
在本地電腦上安裝Navicat,然后按照上述方法進(jìn)行數(shù)據(jù)庫(kù)連接,在填寫(xiě)主機(jī)名和IP地址的時(shí)候選擇云服務(wù)器的外網(wǎng)IP即可。
后記
后來(lái)發(fā)現(xiàn)C#程序有時(shí)候外網(wǎng)訪問(wèn)MySql有點(diǎn)慢,導(dǎo)致timeout異常,找到如下解決辦法
在my.ini文件里面添加如下內(nèi)容,禁止掉DNS解析,跳過(guò)權(quán)限表可以明顯加快速速
[mysqld]
skip-name-resolve?
skip-grant-tables
另外,按照上述配置,偶爾會(huì)產(chǎn)生下列錯(cuò)誤,尤其在網(wǎng)速有點(diǎn)卡的時(shí)候尤其明顯
Lost connection to MySQL server at 'reading initial communication packet', system error: 0
通過(guò)查找資料,網(wǎng)上說(shuō)是MySql的connect_timeout默認(rèn)為5,即5秒內(nèi)沒(méi)響應(yīng)就會(huì)報(bào)錯(cuò),因此,這里在my.ini文件里加上這句話
connect_timeout = 120
總結(jié)
以上是生活随笔為你收集整理的云服务器外网访问MySql全程实录的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 技巧推荐 PDF文件怎么转成word文档
- 下一篇: 实操教程:黑客如何瞄准和入侵网站的