MySQL :: MySQL 8.4 C API Developer Guide :: 5.4.55 mysql_options4() (original) (raw)
5.4.55 mysql_options4()
int
mysql_options4(MYSQL *mysql,
enum mysql_option option,
const void *arg1,
const void *arg2)
Description
mysql_options4() is similar tomysql_options() but has an extra fourth argument so that two values can be passed for the option specified in the second argument.
The following list describes the permitted options, their effect, and how arg1
andarg2
are used.
MYSQL_OPT_CONNECT_ATTR_ADD
(argument types:char *, char *
)
This option adds an attribute key-value pair to the current set of connection attributes to pass to the server at connect time. Both arguments are pointers to null-terminated strings. The first and second strings indicate the key and value, respectively. If the key is empty or already exists in the current set of connection attributes, an error occurs. Comparison of the key name with existing keys is case-sensitive.
Key names that begin with an underscore (_
) are reserved for internal use and should not be created by application programs. This convention permits new attributes to be introduced by MySQL without colliding with application attributes.
mysql_options4() imposes a limit of 64KB on the aggregate size of connection attribute data it accepts. For calls that cause this limit to be exceeded, aCR_INVALID_PARAMETER_NO error occurs. Attribute size-limit checks also occur on the server side. For details, seePerformance Schema Connection Attribute Tables, which also describes how the Performance Schema exposes connection attributes through thesession_connect_attrs andsession_account_connect_attrs tables.
See also the descriptions for theMYSQL_OPT_CONNECT_ATTR_RESET
andMYSQL_OPT_CONNECT_ATTR_DELETE
options in the description of themysql_options() function.MYSQL_OPT_USER_PASSWORD
(argument types:unsigned int *, char *
)
This option specifies the password for a multifactor authentication factor (seeMultifactor Authentication).
The first argument points to anunsigned int
variable that should have a value of 1, 2, or 3 to indicate the factor for which the password is being specified. The second argument points to a character string that provides the password value.
This option was added in MySQL 8.0.27.
Return Values
Zero for success. Nonzero if you specify an unknown option.
Errors
- CR_DUPLICATE_CONNECTION_ATTR
A duplicate attribute name was specified. - CR_INVALID_PARAMETER_NO
A key name was empty or the amount of key-value connection attribute data exceeds 64KB limit. - CR_OUT_OF_MEMORY
Out of memory.
Example
This example demonstrates the calls that specify connection attributes:
MYSQL mysql;
mysql_init(&mysql);
mysql_options(&mysql,MYSQL_OPT_CONNECT_ATTR_RESET, 0);
mysql_options4(&mysql,MYSQL_OPT_CONNECT_ATTR_ADD, "key1", "value1");
mysql_options4(&mysql,MYSQL_OPT_CONNECT_ATTR_ADD, "key2", "value2");
mysql_options4(&mysql,MYSQL_OPT_CONNECT_ATTR_ADD, "key3", "value3");
mysql_options(&mysql,MYSQL_OPT_CONNECT_ATTR_DELETE, "key1");
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));
}