有關mysql遠端連線總結

來源:互聯網
上載者:User

標籤:

1,遠端連線與本地串連不同。本地串連因為不受網速等因素的影響,處理速度比較快,所以一般操作資料庫的方式都是採用短串連的形式,也就是串連-操作-關閉。但是遠端連線經過測試發現,串連遠程伺服器上的資料庫耗時比較長,但是實際操作資料庫用時不般不受太大的影響。所以,遠程操作的方式採用長串連形式,也就是串連-操作。。。。。。-操作-關閉,詳細一點,就是開始的時候串連,中間執行若干操作,只有關閉軟體的時候才關閉資料庫。

2,既然遠程用長串連形式,有人會說中間串連斷開了怎麼辦?其中有一個解決的辦法,mysql的C  API 提供了一個函數mysql_ping(&msyqlconnect),可以將這個函數放到程式中的適當的位置,週期性檢查資料庫連接是否斷開,若斷開了,這個函數會自動進行串連。但是用這個函數有個前提:在使用mysql_real_connect串連資料庫之後,再使用mysql_options( &mysql, MYSQL_OPT_RECONNECT, … ) 來設定為自動重連。這樣當mysql串連丟失的時候,使用mysql_ping能夠自動重連資料庫。如果是在mysql 5.1.6之前,那麼則應在每次執行完real_connect 之後執行mysql_options( &mysql, MYSQL_OPT_RECONNECT, … ) ,如果是mysql 5.1.6+,則在connect之前執行一次就夠了。

 我的具體實現代碼是:

//資料庫連接

int DataBaseOperator::connect(CString address,CString username,CString password,CString port,CString database)

{

   if (mysql_real_connect(&mysqlConnect,address,username,password,database,atoi(port),NULL,0))

   {   

    char value = 1;   

    mysql_options(&mysqlConnect, MYSQL_OPT_RECONNECT, &value);

     return 1;  

  }

   else

   {  

     return 0;

   }

}

可以另起一個定時器:

加入下面這句:

mysql_ping(&oper.mysqlConnect);

3,即然採用長串連,當時我們希望這個串連的時間越長越好。除了用mysql_ping()之外,我們最好設定一下mysql資料庫的連線逾時時間長度。

下面文字摘自http://blog.chinaunix.net/uid-26758020-id-3307042.html

在Mysql的預設設定中,如果一個資料庫連接超過8小時沒有使用(閑置8小時,即

 28800s),mysql server將主動斷開這條串連,後續在該串連上進行的查詢操作都將失敗,將 出現:error 2006 (MySQL server has gone away)!。  查看mysql server逾時時間:   msyql> show global variables like ‘%timeout%‘; 設定mysql server逾時時間(以秒為單位):    msyql> set global wait_timeout=10;   msyql> set global interactive_timeout=10;

 

有關mysql遠端連線總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.