10bet网址
MySQL 5.6 C API开发指南
下载本手册

5.4.49 mysql_options()

int mysql_options(mysql * mysql,enum mysql_option选项,const void * arg)

描述

可用于设置额外的连接选项并影响连接的行为。可以多次调用此功能以设置多个选项。

称呼mysql_options()mysql_init()之前mysql_connect ()或者mysql_real_connect()

选项参数是您想要设置的选项;这arg参数是选项的值。如果选项是一个整数,请指定指向整数的值的指针arg论点。

如果此类连接可用,则使用SSL证书和密钥文件等信息的选项来建立加密连接,但不强制执行所获得的连接的任何要求。要要求加密连接,请使用中描述的技术第3.5.1节“支持加密连接”

以下列表描述了可能的选项,其效果以及如何arg用于每个选项。有关指示的选项描述arg未使用,其价值无关紧要;它是传统的0.几个选项才适用于应用程序与之相关libmysqld嵌入式服务器库并未为应用程序链接的应用程序libmysqlclient客户图书馆。

  • mysql_default_auth.(参数类型:char

    要使用的身份验证插件的名称。

  • MYSQL_ENABLE_CLEARTEXT_PLUGIN(参数类型:my_bool *

    启用mysql_clear_passwordClearText身份验证插件。看客户端ClearText可插拔身份验证

  • mysql_init_command.(参数类型:char

    连接到MySQL Server时执行SQL语句。如果发生重新连接,会自动重新执行。

  • mysql_opt_bind.(参数:char

    从中连接到服务器的网络接口。当客户端主机有多个网络接口时,使用这一点。该参数是主机名或IP地址(指定为字符串)。

  • mysql_opt_can_handle_expired_pa​​ssword(参数类型:my_bool *

    指示客户端是否可以处理过期的密码。看服务器处理过期密码

  • MYSQL_OPT_COMPRESS(参数:未使用)

    如果可能,压缩客户端和服务器之间发送的所有信息。看连接压缩控制

  • mysql_opt_connect_attr_delete.(参数类型:char

    给定键名,此选项从当前连接属性集中删除键值对以在CONNECT时间传递到服务器。该参数是指向空终止字符串命名密钥的指针。使用现有键的关键名称的比较区分大小写。

    的描述mysql_opt_connect_attr_reset.控件的描述mysql_opt_connect_attr_add.在描述中的选择mysql_options4()功能。该功能描述还包括使用示例。

    性能架构通过以下方式公开连接属性session_connect_attrs.session_account_connect_attrs.表。看性能模式连接属性表

  • mysql_opt_connect_attr_reset.(没有使用的论点)

    此选项重置(清除)当前的连接属性集以在Connect Time传递到服务器。

    的描述mysql_opt_connect_attr_delete.控件的描述mysql_opt_connect_attr_add.在描述中的选择mysql_options4()功能。该功能描述还包括使用示例。

    性能架构通过以下方式公开连接属性session_connect_attrs.session_account_connect_attrs.表。看性能模式连接属性表

  • MYSQL_OPT_CONNECT_TIMEOUT(参数类型:unsigned int *

    连接超时(以秒为单位)。

  • mysql_opt_guess_connection.(参数:未使用)

    对于涉及的应用程序libmysqld嵌入式服务器库,此选项使库猜测是否使用嵌入式服务器或远程服务器。猜测意味着如果主机名被设置并且不是本地主机,它使用远程服务器。此行为是默认值。mysql_opt_use_embedded_connection.mysql_opt_use_remote_connection.可以用来覆盖它。对于链接的应用程序,忽略此选项libmysqlclient客户图书馆。

  • mysql_opt_local_infile.参数类型:可选指针无符号整型

    此选项会影响客户端当地的能力加载数据操作。默认,当地的能力由编译到MySQL客户端库中的默认值确定。明确控制此功能,请调用mysql_options()启用或禁用mysql_opt_local_infile.选择:

    • 启用当地的数据加载,将指针设置为指向一个无符号整型具有非零值,或省略指针参数。

    • 禁用当地的数据加载,将指针设置为指向一个无符号整型具有零值。

    Enabled_local_infile.CMake.选项控制本地数据加载的客户端库默认值(参见MySQL源配置选项)。

    成功使用当地的客户端加载操作还要求服务器允许本地加载;看加载数据本地的安全注意事项

  • MYSQL_OPT_NAMED_PIPE(参数:未使用)

    如果服务器允许命名为管道连接,请使用命名管道连接到Windows上的MySQL Server。

  • MYSQL_OPT_PROTOCOL(参数类型:unsigned int *

    传输协议用于连接。指定其中一个枚举值mysql_protocol_type定义mysql.h.

  • mysql_opt_read_timeout.(参数类型:unsigned int *

    每次尝试从服务器读取的超时以秒为单位。必要时有重试,因此总有效超时值是选项值的三倍。您可以设置值,以便可以比TCP / IP更早检测到丢失的连接关闭_wait_timeout.价值10分钟。

    此超时的实现使用可能在所有平台上使用的机制。在这样的平台上,在某些情况下可能会在某些情况下发出读取呼叫的客户端在没有时刻出发。例如,如果服务器未响应,则客户端可能不会超时,因为它正在等待a磁盘已满条件清晰。

  • mysql_opt_reconnect.(参数类型:my_bool *

    如果发现连接已丢失,请启用或禁用自动重新连接到服务器。默认重新连接关闭;此选项提供了一种明确设置重新连接行为的方法。看第3.5.6节“自动重新连接控制”

  • mysql_opt_retry_count.(参数类型:unsigned int *

    连接到服务器或与其通信时中断的I / O相关系统调用的重试计数。如果未指定此选项,则默认值为1(如果初始呼叫中断2尝试,则为1重试)。

    此选项只能由Clients与Culd Client库链接的客户端一起使用,该客户端与NDB群集支持组成的C客户端库。它可用作MySQL NDB集群7.4.11。

  • mysql_opt_ssl_ca.(参数类型:char

    证书颁发机构(CA)证书文件的路径名。如果使用,则此选项必须指定服务器使用的相同证书。

  • mysql_opt_ssl_capath.(参数类型:char

    包含受信任的SSL CA证书文件的目录的路径名。

  • mysql_opt_ssl_cert.(参数类型:char

    客户端公钥证书文件的路径名称。

  • mysql_opt_ssl_cipher.(参数类型:char

    SSL加密的允许密码列表。

  • mysql_opt_ssl_cl.(参数类型:char

    包含证书撤销列表的文件的路径名。

  • mysql_opt_ssl_crlpath.(参数类型:char

    包含包含证书撤销列表的文件的目录的路径名。

  • mysql_opt_ssl_key.(参数类型:char

    客户端私钥文件的路径名。

  • mysql_opt_ssl_mode.(参数类型:unsigned int *

    用于连接到服务器的安全状态。唯一允许的增值价值是SSL_MODE_REQUIRED(需要加密连接)。如果设置,则此选项原因mysql_real_connect()如果无法获取加密连接,则不会倒回未加密的连接。因此,mysql_real_connect()如果服务器不支持SSL或者客户端未配置为使用SSL,则返回错误。有关安全状态的更多信息,请参阅描述- ssl-mode.加密连接的命令选项

    要在MySQL 5.6中需要加密连接,标准MySQL客户端程序调用mysql_options()设置mysql_opt_ssl_mode.如果是-ssl-mode =必填指定了命令行选项。必须需要加密连接的第三方应用程序可以使用所描述的技术第3.5.1节“支持加密连接”

    此选项已在MySQL 5.6.36中添加。

  • mysql_opt_sl_verify_server_cert.(参数类型:my_bool *

    在连接到服务器时使用的主机名启用或禁用其证书中的服务器的公共名称标识的验证。如果存在不匹配,则拒绝连接。对于加密连接,此功能可用于防止中间人攻击。默认情况下禁用身份验证。

  • mysql_opt_use_embedded_connection.(参数:未使用)

    对于涉及的应用程序libmysqld嵌入式服务器库,此选项强制使用嵌入式服务器进行连接。忽略与之相关的应用程序libmysqlclient客户图书馆。

  • mysql_opt_use_remote_connection.(参数:未使用)

    对于涉及的应用程序libmysqld嵌入式服务器库,此选项强制使用远程服务器进行连接。忽略与之相关的应用程序libmysqlclient客户图书馆。

  • MYSQL_OPT_USE_RESULT(参数:未使用)

    此选项未使用。

  • mysql_opt_write_timeout.(参数类型:unsigned int *

    每个尝试写入服务器的超时以秒为单位。如有必要,有一个重试,因此总有效超时值是选项值的两倍。

  • mysql_plugin_dir.(参数类型:char

    要查找客户端插件的目录。

  • mysql_read_default_file.(参数类型:char

    从命名选项文件中的读取选项而不是来自我.CNF.

  • mysql_read_default_group.(参数类型:char

    从命名组的阅读选项我.CNF.或指定的文件mysql_read_default_file.

  • mysql_report_data_truncation.(参数类型:my_bool *

    使用该启用或禁用准备好语句的数据截断错误的报告错误成员mysql_bind.结构。(默认:启用。)

  • mysql_secure_auth.(参数类型:my_bool *

    是否连接到不支持MySQL 4.1.1及以后版本密码哈希的服务器。该选项默认启用。

  • mysql_server_public_key.(参数类型:char

    PEM格式的PATH名称包含服务器基于RSA密钥对的密码交换所需的公钥的客户端副本。此选项适用于使用与其验证的帐户连接到服务器的客户端SHA256_PASSWORD.身份验证插件。对于未对其中一个插件进行身份验证的帐户,将忽略此选项。如果未使用基于RSA的密码交换,则也会忽略它,就像客户端使用安全连接连接到服务器时一样。

    有关SHA256_PASSWORD.插件,参见SHA-256可插拔认证

  • MYSQL_SET_CHARSET_DIR(参数类型:char

    包含字符集定义文件的目录的路径名。

  • mysql_set_charset_name.(参数类型:char

    要用作默认字符集的字符集的名称。论点可以mysql_autodetect_charset_name.原因是根据操作系统设置自动检测的字符集(请参阅连接字符集和排序)。

  • mysql_set_client_ip.(参数类型:char

    对于涉及的应用程序libmysqld嵌入式服务器库(何时libmysqld使用身份验证支持编译),此选项意味着用户被视为已从指定的IP地址(指定为字符串)连接以进行身份​​验证目的。忽略与之相关的应用程序libmysqlclient客户图书馆。

  • mysql_shared_memory_base_name.(参数类型:char

    如果服务器支持共享内存连接,则在Windows上通信的共享存储对象的名称。指定相同的值shared_memory_base_name.系统变量。的mysqld.您要连接的服务器。

客户如果你用Group,它总是读mysql_read_default_file.或者mysql_read_default_group.

选项文件中的指定组可能包含以下选项。

选项 描述
字符集DIR =dir_name. 安装字符集的目录。
压缩 使用压缩的客户端/服务器协议。
Connect-Timeout = 连接超时(以秒为单位)。在Linux上,这个超时也用于等待服务器的第一个应答。
数据库=db_name. 如果CONNEC命令中未指定数据库,请连接到此数据库。
调试 调试选项。
默认字符集=charset_name. 要使用的默认字符集。
禁用 - 本地 - infile 禁用使用加载数据本地
enable-cleartext-plugin 启用mysql_clear_passwordClearText身份验证插件。
主持人=host_name 默认主机名。
init-command =支撑 语句在连接MySQL服务器时执行。如果发生重新连接,会自动重新执行。
交互式超时= 与指定相同client_interaractive.mysql_real_connect().看部分5.4.53”mysql_real_connect ()
local-infile [= {0 | 1}] 如果没有参数或非零参数,请启用使用加载数据本地;否则禁用。
max_allowed_pa​​cket =.字节 客户端可以从服务器读取的数据包的最大大小。
多查询多结果 从多语句执行或存储过程启用多个结果集。
多语句 使客户端能够在单个字符串中发送多个语句(分隔;人物)。
密码=密码 默认密码。
管道 使用命名管道连接到Windows上的MySQL服务器。
端口=port_num. 默认端口号。
协议= {TCP |插座|管道|记忆} 连接到服务器时使用的协议。
return-found-rows 告诉mysql_info ()使用时返回找到的行而不是更新的行更新
共享内存 - 基本名称=名称 用于连接到服务器的共享内存名称。
socket = {文件名|pipe_name.} 默认套接字文件。
SSL-CA =文件名 证书颁发机构文件。
ssl-capath =dir_name. 证书颁发机构目录。
ssl-cert =文件名 证书文件。
SSL-Cipher =cipher_list. 允许的SSL Ciphers。
SSL-key =文件名 密钥文件。
超时= 喜欢连接 - 超时
用户 默认用户。

超时已被替换连接 - 超时, 但超时仍然支持向后兼容性。

有关MySQL程序使用的选项文件的详细信息,请参阅使用选项文件

返回值

成功零。非零如果指定未知选项。

例子

以下mysql_options()呼叫请求在客户端/服务器协议中使用压缩,导致选项从中读取[ODBC]在选项文件中组,禁用事务自动查找模式:

mysql mysql;mysql_init(&mysql);mysql_options(&mysql,mysql_opt_compress,0);mysql_options(&mysql,mysql_read_default_group,“ODBC”);mysql_options(&mysql,mysql_init_command,“set autocommit = 0”);if(!mysql_real_connect(&mysql,host“,”用户“,”隘口“,”数据库“,0,null,0)){fprintf(stderr,”无法连接到数据库:错误:%s \ n“,mysql_error(&mysql));}