昨天测试部同事用大呼测试我们的业务系统,数据库用的是MySQL。单呼的时候数据库查询正常,但是呼叫量一大就出现了数据库查询延迟的情况。
经过分析发现是由于MySQL Server的数据库端开启了SSL,每次查询都要经过SSL验证。于是我就查找如何关闭SSL验证的方法。
通过百度搜索,居然全网出了用mysql客户端增加--ssl-mode=DISABLED参数外。再没有明确的关闭SSL的方法。
通过查询MySQL的官方的英文网页说明,大致了解了设置的方法。通过mysql_options接口函数可以实现。
int mysql_options(MYSQL *mysql, enum mysql_option option, const void *arg)
该函数用在mysql_init之后,在mysql_connect或mysql_real_connect之前。
after mysql_init() and before mysql_connect() or mysql_real_connect().
具体编码如下:
MYSQL *conn; conn = mysql_init(NULL); mysql_ssl_mode sslmode = SSL_MODE_DISABLED; mysql_options(conn,MYSQL_OPT_SSL_MODE,(void *)&sslmode); if (mysql_real_connect(conn, mysqlHost, mysqlUser, mysqlPasswd, mysqlDBName, mysqlPort, opt_socket_name, opt_flags) == NULL)