/****************************************************************************

Init MySQL structure or allocate one

****************************************************************************/

MYSQL * STDCALL

mysql_init(MYSQL *mysql)

{

if (mysql_server_init(0, NULL, NULL))

return 0;

if (!mysql)

{

if (!(mysql=(MYSQL*) my_malloc(sizeof(*mysql),MYF(MY_WME | MY_ZEROFILL))))

{

set_mysql_error(NULL, CR_OUT_OF_MEMORY, unknown_sqlstate);

return 0;

}

mysql->free_me=1;

}

else

memset(mysql, 0, sizeof(*(mysql)));

mysql->charset=default_client_charset_info;

strmov(mysql->net.sqlstate, not_error_sqlstate);

/*

Only enable LOAD DATA INFILE by default if configured with

--enable-local-infile

*/

#if defined(ENABLED_LOCAL_INFILE) && !defined(MYSQL_SERVER)

mysql->options.client_flag|= CLIENT_LOCAL_FILES;

#endif

#ifdef HAVE_SMEM

mysql->options.shared_memory_base_name= (char*) def_shared_memory_base_name;

#endif

mysql->options.methods_to_use= MYSQL_OPT_GUESS_CONNECTION;

mysql->options.report_data_truncation= TRUE;  /* default */

/*

By default we don't reconnect because it could silently corrupt data (after

reconnection you potentially lose table locks, user variables, session

variables (transactions but they are specifically dealt with in

mysql_reconnect()).

This is a change: reconnect was set to 1 by default.

How this change impacts existing apps:

- existing apps which relyed on the default will see a behaviour change;

they will have to set reconnect=1 after mysql_real_connect().

- existing apps which explicitely asked for reconnection (the only way they

could do it was by setting mysql.reconnect to 1 after mysql_real_connect())

will not see a behaviour change.

- existing apps which explicitely asked for no reconnection

(mysql.reconnect=0) will not see a behaviour change.

*/

mysql->reconnect= 0;

mysql->options.secure_auth= TRUE;

return mysql;

}

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐