我在騰訊雲上買了太CVM服務器,來配置下外網如何訪問MySql全程實錄

1.服務器申請

最近在給一個小企業做個報價系統,C#WPF框架開發,桌面程序。由於用戶可能經常出差,更換電腦,因此考慮將程序的數據庫放到外網服務器上,每次程序使用需要登錄驗證,有點類似QQ的方法。這裏有人說爲什麼不直接做成web,桌面應用已經落伍了。確實如此,原因主要是這個企業的報價系統的前端交互太多,一堆的javascript代碼,還有一堆的word報表輸入輸出,做成web太過麻煩。因此還是決定做成桌面應用程序。由於訪問量和併發性並不大,因此考慮性能一般的雲服務器就可以了。

正好趕上騰訊活動,以學生價格購得騰訊雲服務器,價格10元/月,50G的容量,拿來做個人的程序開發和調試比較合適(騰訊經常有活動,相比於其他的雲服務,騰訊雲性價比還是可以的)。購買網址:https://cloud.tencent.com/product/cvm

下面是服務器基本信息:操作系統是windows server 2012 R2 64位中文版(我是小白,還是喜歡在windows下面搗鼓搗鼓,感覺簡單實惠,大牛看不過去的忍忍吧)

建議購買後的同學可以簡單的玩一玩這個服務器,熟悉下基本性能。雲服務器我喜歡採用遠程登錄界面的方式,登錄後和操作普通的windows電腦基本沒區別。可以完全把這臺電腦想象成你手頭的筆記本電腦,唯一的區別在於這臺電腦有一個公共的外網IP。想要上傳文件什麼的直接在本地電腦和服務器上copy文件就可以,相當簡單方便,並且雲服務器也可以直接裝軟件,和普通電腦沒什麼區別。

2.服務器上MySql安裝與基本使用

(1)下載MySql

下載網址:點擊打開鏈接

我建議下載早期的版本,晚點的版本好像配置的時候找不到My-default.ini,後面配置不是很好弄。我下載的版本是MySql 5.6.40 win64。爲了方便大家下面給出一個我使用的版本,下面是鏈接。

下載後需要修改my.ini文件。直接在官網下載後期MySql的人按照其他人的教程可能需要找到MyDefault.ini文件,但是後期版本里面是沒有這個文件的,雖然我也參考了一些教程,但是感覺有點麻煩,所以我還是用了早起的5.6.40版本。

接下來,我把整個文件夾解壓後放到雲服務器C盤下面的toolplace文件夾下面。如果你放在了其他位置,需要修改my.ini文件裏面的basedir和datadir目錄,注意這裏凡是用\路徑的都要用\,修改完保存即可。

(2)修改系統變量

windows下面修改系統環境變量(不會的自己網上百度下如何修改環境變量),在path裏面添加”;C:\toolplace\mysql-5.6.40-winx64\bin” 這裏注意前面的分號,用來跟其他環境變量分隔開。

修改系統環境變量主要是爲了方便使用MySql命令,如果不這麼幹的話,需要cd一直到bin文件夾下面,才能使用相關MySql命令。

(3)MySql安裝、啓動和修改密碼

點擊開始菜單,搜索框輸入cmd,然後右鍵以管理員身份運行,輸入 :

mysqld install
回車後會英文提示安裝成功。

然後輸入啓動命令:


net start mysql 

可以看到啓動成功了。若要關閉mysql服務,使用下面的命令:

net stop mysql
在服務啓動的狀態下,需要登錄MySql,才能繼續操作數據庫,登錄命令如下:

# mysql -u root -p
這裏會提示輸入密碼,直接回車就可以。(因爲剛裝完默認情況下沒有密碼),但是我們實際情況下需要設置密碼,設置方式如下,首先退出當前賬戶,退出命令:

exit

這裏設置新密碼的命令:

mysqladmin -u root -p password 123456

按回車即可。123456即爲你想要設置的密碼,然後會提示輸入密碼,把123456再填一遍,這樣的話就修改成功了。

然後用

# mysql -u root -p
登陸,接着輸入剛纔的密碼即可。進入後可以在Mysql編輯狀態下輸入

show databases;

再按回車即可看到下圖顯示的部分已由的數據庫。上面的命令注意 最後的分號也是需要輸入的

至此,已經在騰訊雲服務器上安裝完MySql了。

3.服務器上Navicat安裝與基本使用

在命令行下面進行數據庫操作是完全可以的,但是對於不熟悉命令行的人來說可能不是很方便。這裏我們採用Navicat來連接,管理、測試數據庫狀態。Navicat的安裝這裏不再重複敘述,可以網上自行百度。這裏爲了方便,同樣給出破解版的下載地址:點擊打開鏈接

下載後解壓copy到雲服務器上,不需要安裝,直接運行即可。

先創建MySql連接,隨便輸入一個連接名,輸入剛纔MySql數據庫密碼,點擊確認,即可查看MySql裏面的數據庫。關於如何使用Navicat操作數據庫,這裏不再過多介紹,比較簡單。

4.MySql修改外網訪問權限

爲了使得雲服務器上的MySql可以給外網進行訪問,我們這裏用cmd然後輸入

# mysql -u root -p
再輸入密碼重新登錄MySql

輸入

use mysql;

進入mysql數據庫,然後更改root用戶權限:

UPDATE user SET host = ‘%’ WHERE host = ‘127.0.0.1’

這樣,所有用戶這樣一來所有IP地址均可以作爲root用戶,可以使用SELECT host,user FROM user查詢當前用戶表。

對所有root用戶授權:

GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;

這裏“123456”爲MySql密碼,也可以對指定IP的用戶授權:

GRANT ALL PRIVILEGES ON . TO ‘root’@’指定的IP’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;

然後重載授權表:

FLUSH PRIVILEGES;

至此,就配置好MySql的外網訪問權限了。

4.測試MySql外網訪問

在本地電腦上安裝Navicat,然後按照上述方法進行數據庫連接,在填寫主機名和IP地址的時候選擇雲服務器的外網IP即可。

後記

後來發現C#程序有時候外網訪問MySql有點慢,導致timeout異常,找到如下解決辦法

在my.ini文件裏面添加如下內容,禁止掉DNS解析,跳過權限表可以明顯加快速速

[mysqld] 
skip-name-resolve

skip-grant-tables

另外,按照上述配置,偶爾會產生下列錯誤,尤其在網速有點卡的時候尤其明顯

Lost connection to MySQL server at ‘reading initial communication packet’, system error: 0
通過查找資料,網上說是MySql的connect_timeout默認爲5,即5秒內沒響應就會報錯,因此,這裏在my.ini文件里加上這句話


connect_timeout = 120

大家喜歡這篇文字,可以關注大牛編程吧!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章