About MySQL Remote connection summary

Source: Internet
Author: User

1, the remote connection differs from the local connection. Local connection because not affected by such factors as speed, processing speed is relatively fast, so the general operation of the database is the form of a short connection, that is, connection-operation-shutdown. However, the remote connection has been tested to find that it takes a long time to connect to the database on the remote server, but the actual operation of the database is not much affected. Therefore, the way of remote operation in a long connection form, that is, connection-operation ... -operation-Close, detailed, is the beginning of the connection, the middle of a number of operations, only close the software when the database is closed.

2, since remote with long connection form, some people will say the middle connection is broken what to do? One solution, MySQL's C API provides a function mysql_ping (&msyqlconnect), you can put this function in the program in the appropriate location, periodically check the database connection is broken, if disconnected, this function will automatically connect. But with this function there is a premise: after using Mysql_real_connect to connect to the database, then use Mysql_options (&mysql, Mysql_opt_reconnect, ...) to automatically reconnect. This way, when the MySQL connection is lost, you can use mysql_ping to automatically reconnect the database. If it is before MySQL 5.1.6, then the Mysql_options (&mysql, Mysql_opt_reconnect, ...) should be executed after each execution of Real_connect, if it is MySQL 5.1.6+, It's enough to do it once before connect.

My specific implementation code is:

Database connection

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;

}

}

You can start a different timer:

Add the following sentence:

Mysql_ping (&oper.mysqlconnect);

3, that is, a long connection, at that time we hope that the longer the connection, the better. In addition to using mysql_ping (), we'd better set the MySQL database connection timeout length.

The following text was excerpted from http://blog.chinaunix.net/uid-26758020-id-3307042.html

In MySQL default settings, if a database connection is not used for more than 8 hours (idle for 8 hours, i.e.

28800s), MySQLThe server will actively disconnect the connection, and subsequent query operations on that connection will fail,appears: Error 2006(MySQL server has gone away)!. To view the MySQL server time-out:Msyql> show global variables like '%timeout% '; Set MySQL server time-out (in seconds): msyql> set global wait_timeout=10;msyql> set global interactive_timeout=10;

About MySQL Remote connection summary

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

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.