闲时会写写程序的非技术人员。
分类: Mysql/postgreSQL
2010-08-04 15:56:00
int mysql_options(MYSQL *mysql, enum mysql_option option, const char *arg)
描述
可用于设置额外的连接选项,并影响连接的行为。可多次调用该函数来设置数个选项。
应在mysql_init()之后、以及mysql_connect()或mysql_real_connect()之前调用mysql_options()。
选项参量指的是你打算设置的选项。Arg参量是选项的值。如果选项是整数,那么arg应指向整数的值。
可能的选项值:
选项 | 参量类型 | 功能 |
MYSQL_INIT_COMMAND | char * | 连接到MySQL服务器时将执行的命令。再次连接时将自动地再次执行。 |
MYSQL_OPT_COMPRESS | 未使用 | 使用压缩客户端/服务器协议 |
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 | 指向单元的可选指针 | 如果未给定指针,或指针指向“unsigned int != 0”,将允许命令LOAD LOCAL INFILE。 |
MYSQL_OPT_NAMED_PIPE | 未使用 | 使用命名管道连接到NT平台上的MySQL服务器。 |
MYSQL_OPT_PROTOCOL | unsigned int * | 要使用的协议类型。应是mysql.h中定义的mysql_protocol_type的枚举值之一。 |
MYSQL_OPT_READ_TIMEOUT | unsigned int * | 从服务器读取信息的超时(目前仅在Windows平台的TCP/IP连接上有效)。 |
MYSQL_OPT_RECONNECT | my_bool * | 如果发现连接丢失,启动或禁止与服务器的自动再连接。从MySQL 5.0.3开始,默认情况下禁止再连接,这是5.0.13中的新选项,提供了一种以显式方式设置再连接行为的方法。 |
MYSQL_OPT_SET_CLIENT_IP | char * | 对于与libmysqld链接的应用程序(具备鉴定支持特性的已编译libmysqld),它意味着,出于鉴定目的,用户将被视为从指定的IP地址(指定为字符串)进行连接。对于与libmysqlclient链接的应用程序,,该选项将被忽略。 |
MYSQL_OPT_USE_EMBEDDED_CONNECTION | 未使用 | 对于与libmysqld链接的应用程序,对于连接来说,它将强制使用嵌入式服务器。对于与libmysqlclient链接的应用程序,,该选项将被忽略。 |
MYSQL_OPT_USE_REMOTE_CONNECTION | 未使用 | 对于与libmysqld链接的应用程序,对于连接来说,它将强制使用远程服务器。对于与libmysqlclient链接的应用程序,,该选项将被忽略。 |
MYSQL_OPT_USE_RESULT | 未使用 | 不使用该选项。 |
MYSQL_OPT_WRITE_TIMEOUT | unsigned int * | 写入服务器的超时(目前仅在Windows平台的TCP/IP连接上有效)。 |
MYSQL_READ_DEFAULT_FILE | char * | 从命名选项文件而不是从my.cnf读取选项。 |
MYSQL_READ_DEFAULT_GROUP | char * | 从my.cnf或用MYSQL_READ_DEFAULT_FILE指定的文件中的命名组读取选项。 |
MYSQL_REPORT_DATA_TRUNCATION | my_bool * | 通过MYSQL_BIND.error,对于预处理语句,允许或禁止通报数据截断错误(默认为禁止)。 |
MYSQL_SECURE_AUTH | my_bool* | 是否连接到不支持密码混编功能的服务器,在MySQL 4.1.1和更高版本中,使用了密码混编功能。 |
MYSQL_SET_CHARSET_DIR | char* | 指向包含字符集定义文件的目录的路径名。 |
MYSQL_SET_CHARSET_NAME | char* | 用作默认字符集的字符集的名称。 |
MYSQL_SHARED_MEMORY_BASE_NAME | char* | 命名为与服务器进行通信的共享内存对象。应与你打算连接的mysqld服务器使用的选项“-shared-memory-base-name”相同。 |
注意,如果使用了MYSQL_READ_DEFAULT_FILE或MYSQL_READ_DEFAULT_GROUP,总会读取客户端组。
选项文件中指定的组可能包含下述选项:
选项 | 描述 |
connect-timeout | 以秒为单位的连接超时。在Linux平台上,该超时也用作等待服务器首次回应的时间。 |
compress | 使用压缩客户端/服务器协议。 |
database | 如果在连接命令中未指定数据库,连接到该数据库。 |
debug | 调试选项。 |
disable-local-infile | 禁止使用LOAD DATA LOCAL。 |
host | 默认主机名。 |
init-command | 连接到MySQL服务器时将执行的命令。再次连接时将自动地再次执行。 |
interactive-timeout | 等同于将CLIENT_INTERACTIVE指定为mysql_real_connect()。请参见。 |
local-infile[=(0|1)] | 如果无参量或参量!= 0,那么将允许使用LOAD DATA LOCAL。 |
max_allowed_packet | 客户端能够从服务器读取的最大信息包。 |
multi-results | 允许多语句执行或存储程序的多个结果集。 |
multi-statements | 允许客户端在1个字符串内发送多条语句。(由“;”隔开)。 |
password | 默认密码。 |
pipe | 使用命名管道连接到NT平台上的MySQL服务器。 |
protocol={TCP | SOCKET | PIPE | MEMORY} | 连接到服务器时将使用的协议。 |
port | 默认端口号。 |
return-found-rows | 通知mysql_info()返回发现的行,而不是使用UPDATE时更新的行。 |
shared-memory-base-name=name | 共享内存名称,用于连接到服务器(默认为"MYSQL")。 |
socket | 默认的套接字文件。 |
user | 默认用户。 |
注意,“timeout”(超时)已被“connect-timeout”(连接超时)取代,但为了保持向后兼容,在MySQL 5.1.2-alpha中仍支持“timeout”(超时)。
关于选项文件的更多信息,请参见。
返回值
成功时返回0。如果使用了未知选项,返回非0值。
示例:
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));
}
该代码请求客户端使用压缩客户端/服务器协议,并从my.cnf文件的obdc部分读取额外选项。