Search the MySQL manual:

9.1.3.39 mysql_options()

int mysql_options(MYSQL *mysql, enum mysql_option option, const char *arg)

Description

Can be used to set extra connect options and affect behaviour for a connection. This function may be called multiple times to set several options.

mysql_options() should be called after mysql_init() and before mysql_connect() or mysql_real_connect().

The option argument is the option that you want to set; the arg argument is the value for the option. If the option is an integer, then arg should point to the value of the integer.

Possible options values:

Option Argument type Function
MYSQL_OPT_CONNECT_TIMEOUT unsigned int * Connect timeout in seconds.
MYSQL_OPT_COMPRESS Not used Use the compressed client/server protocol.
MYSQL_OPT_LOCAL_INFILE optional pointer to uint If no pointer is given or if pointer points to an unsigned int != 0 the command LOAD LOCAL INFILE is enabled.
MYSQL_OPT_NAMED_PIPE Not used Use named pipes to connect to a MySQL server on NT.
MYSQL_INIT_COMMAND char * Command to execute when connecting to the MySQL server. Will automatically be re-executed when reconnecting.
MYSQL_READ_DEFAULT_FILE char * Read options from the named option file instead of from `my.cnf'.
MYSQL_READ_DEFAULT_GROUP char * Read options from the named group from `my.cnf' or the file specified with MYSQL_READ_DEFAULT_FILE.

Note that the group client is always read if you use MYSQL_READ_DEFAULT_FILE or MYSQL_READ_DEFAULT_GROUP.

The specified group in the option file may contain the following options:

Option Description
connect-timeout Connect timeout in seconds. On Linux this timeout is also used for waiting for the first answer from the server.
compress Use the compressed client/server protocol.
database Connect to this database if no database was specified in the connect command.
debug Debug options.
disable-local-infile Disable use of LOAD DATA LOCAL.
host Default host name.
init-command Command to execute when connecting to MySQL server. Will automatically be re-executed when reconnecting.
interactive-timeout Same as specifying CLIENT_INTERACTIVE to mysql_real_connect(). See section 9.1.3.42 mysql_real_connect().
local-infile[=(0|1)] If no argument or argument != 0 then enable use of LOAD DATA LOCAL.
max_allowed_packet Max size of packet client can read from server.
password Default password.
pipe Use named pipes to connect to a MySQL server on NT.
protocol=(TCP | SOCKET | PIPE | MEMORY) Which protocol to use when connecting to server (New in 4.1)
port Default port number.
return-found-rows Tell mysql_info() to return found rows instead of updated rows when using UPDATE.
shared-memory-base-name=name Shared memory name to use to connect to server (default is "MySQL"). New in MySQL 4.1.
socket Default socket number.
user Default user.

Note that timeout has been replaced by connect-timeout, but timeout will still work for a while.

For more information about option files, see section 4.1.2 `my.cnf' Option Files.

Return Values

Zero for success. Non-zero if you used an unknown option.

Example

MYSQL mysql;

mysql_init(&mysql);
mysql_options(&mysql,MYSQL_OPT_COMPRESS,0);
mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"odbc");
if (!mysql_real_connect(&mysql,"host","user","passwd","database",0,NULL,0))
{
    fprintf(stderr, "Failed to connect to database: Error: %s\n",
          mysql_error(&mysql));
}

The above requests the client to use the compressed client/server protocol and read the additional options from the odbc section in the `my.cnf' file.

User Comments

Add your own comment.