在配置DSN时,可以为Connector/ODBC指定下表中的参数:
Windows上的用户可以使用ODBC数据源管理器
设置这些参数;看到第5.3节,“在Windows上配置连接器/ODBC DSN”看看怎么做表5.1,“连接器/ODBC DSN配置选项”控件的图形用户界面上的选项和它们对应的字段以及复选框的信息ODBC数据源管理器
.在Unix和macOS上,使用参数名称和值作为DSN配置中的关键字/值对。或者,您可以在InConnectionString
的论点SQLDriverConnect ()
调用。
表5.1连接器/ODBC DSN配置选项
参数 | GUI选项 | 默认值 | 评论 |
---|---|---|---|
用户 |
用户 | ODBC | 连接MySQL时使用的用户名。 |
uid |
用户 | ODBC | 的同义词用户 .3.51.16新增。 |
服务器 |
TCP / IP服务器 | 本地主机 |
MySQL服务器的主机名。 |
数据库 |
数据库 | - | 默认数据库。 |
选项 |
- | 0 | 指定Connector/ODBC工作方式的选项。看到表5.3“连接器/ODBC选项参数”和表5.4“不同配置的推荐连接器/ODBC选项值”. |
港口 |
港口 | 3306 | 如果使用的TCP/IP端口服务器 不是本地主机 . |
initstmt |
最初的声明 | - | 最初的声明。连接到MySQL时要执行的语句。在3.51版本中调用该形参支撑 .驱动程序支持只在初始连接时执行初始语句。 |
密码 |
密码 | - | 的密码。用户 账户服务器 . |
松材线虫病 |
密码 | - | 的同义词密码 .3.51.16新增。 |
套接字 |
- | - | 要连接到if的Unix套接字文件或Windows命名管道服务器 是本地主机 . |
sslca |
SSL证书 | - | 带有信任SSL ca列表的文件的路径。3.51.16新增。 |
sslcapath |
SSL CA路径 | - | 包含受信任的SSL CA证书(PEM格式)的目录路径。3.51.16新增。 |
sslcert |
SSL证书 | - | 用于建立安全连接的SSL证书文件的名称。3.51.16新增。 |
sslciph |
SSL密码 | - | SSL加密所允许的密码列表。密码列表的格式与openssl密码 命令。3.51.16新增。 |
sslkey |
SSL密钥 | - | 用于建立安全连接的SSL密钥文件的名称。3.51.16新增。 |
rsakey |
RSA公钥 | - | 用于使用MySQL的SHA256认证插件的RSA公钥的PEM文件的全路径名称。5.3.4新增。 |
sslverify |
验证SSL | 0 | 如果设置为1,则在MySQL连接中使用SSL证书时将进行验证。如果未设置,则默认行为是忽略SSL证书验证。
请注意
该选项自Connector/ODBC 5.3.7以来已弃用。最好使用 |
字符集 |
字符集 | - | 用于连接的字符集。3.51.17新增。 |
readtimeout |
- | - | 试图从服务器读取的超时时间(以秒为单位)。每次尝试都使用这个超时值,如果有必要还会进行重试,因此总有效超时值是该选项值的三倍。通过设置该值,可以在TCP/IP之前检测到丢失的连接Close_Wait_Timeout 10分钟。此选项仅适用于TCP/IP连接,且仅适用于MySQL 5.1.12之前的Windows。对应于MYSQL_OPT_READ_TIMEOUT 选项的MySQL客户端库。3.51.27新增。 |
writetimeout |
- | - | 试图写入服务器的超时时间,以秒为单位。每次尝试都使用这个超时值,并且有net_retry_count 如有必要,将重试,因此有效超时值为net_retry_count 乘以选项值。此选项仅适用于TCP/IP连接,且仅适用于MySQL 5.1.12之前的Windows。对应于MYSQL_OPT_WRITE_TIMEOUT 选项的MySQL客户端库。3.51.27新增。 |
互动 |
互动客户端 | 0 | 如果设置为1,则CLIENT_INTERACTIVE 连接选项mysql-real-connect ()启用。5.1.7新增。 |
预取 |
每次按_行从服务器预取 | 0 | 当设置为非零值时 此选项仅适用于仅向前游标。当option参数时,它不工作 |
no_ssps |
- | 0 | 在Connector/ODBC 5.2及以后版本中,默认使用服务器端预置语句。当此选项设置为非零值时,将在客户端模拟准备好的语句,这与5.1和3.51中的行为相同。5.2.0新增。 |
can_handle_exp_pwd |
可以处理过期的密码 | 0 | 指示应用程序可以处理过期的密码,该密码由SQL状态的08004 (”服务器拒绝连接”)和一个本地错误代码ER_MUST_CHANGE_PASSWORD_LOGIN (1862)。联系是”沙箱”,除了发出一个设置密码 声明。在这种情况下,要建立连接,应用程序必须使用initstmt 连接选项在开始时设置新密码,或发出设置密码 语句。一旦过期的密码被重置,对连接的限制将被解除。看到ALTER USER语句查看MySQL服务器帐户密码过期的详细信息。5.2.4新增。 |
ENABLE_CLEARTEXT_PLUGIN |
启用明文身份验证 | 0 | 设置为1启用明文身份验证。5.1.13和5.2.5新增。 |
ENABLE_LOCAL_INFILE |
启用LOAD DATA操作 | 0 | 连接字符串、DSN和GUI选项。设置ENABLE_LOCAL_INFILE=1以启用LOAD DATA操作。这将切换MYSQL_OPT_LOCAL_INFILE mysql_options()选项。如果同时设置了DSN值,则连接字符串将覆盖这两个值。在5.3.12和8.0.14新增。 |
LOAD_DATA_LOCAL_DIR |
限制LOAD DATA操作 | 连接字符串、DSN和GUI选项。将“LOAD_DATA_LOCAL_DIR”设置为指定目录,例如“LOAD_DATA_LOCAL_DIR=/tmp”,以限制上传文件到指定路径。这将设置MYSQL_OPT_LOAD_DATA_LOCAL_DIR mysql_options()选项。如果同时设置了DSN值,则连接字符串将覆盖这两个值。如果ENABLE_LOCAL_INFILE=1,则此选项无效。在8.0.22中新增。 | |
GET_SERVER_PUBLIC_KEY |
获取服务器公钥 | 0 | 当连接到使用 该选项在Connector/ODBC版本8.0.11和5.3.11中添加。它需要使用基于openssl的MySQL客户端库构建Connector/ODBC。如果Connector/ODBC使用的MySQL客户端库是用YaSSL构建的,就像Connector/ODBC 5.3的GPL发行版一样,该选项不起作用,会被忽略 |
NO_TLS_1_0 |
禁用TLS 1.0 | 0 | 不允许使用TLS 1.0进行连接加密。默认情况下允许所有版本的TLS,该选项不允许使用1.0版本。5.3.7新增。TLS 1.0支持从v8.0.26起已弃用,在未来的版本中可能会删除该支持。 |
NO_TLS_1_1 |
禁用TLS 1.1 | 0 | 不允许使用TLS 1.1进行连接加密。默认情况下,TLS的所有版本都是允许的,该选项排除了版本1.1。5.3.7新增。TLS 1.1支持从v8.0.26起已弃用,在未来的版本中可能会删除该支持。 |
NO_TLS_1_2 |
禁用TLS 1.2 | 0 | 不允许使用TLS 1.2进行连接加密。默认情况下,TLS的所有版本都是允许的,该选项不使用版本1.2。5.3.7新增。 |
NO_TLS_1_3 |
禁用TLS 1.3 | 0 | 不允许使用TLS 1.3进行连接加密。默认情况下,TLS的所有版本都是允许的,该选项排除了1.3版本。在8.0.26中新增。 |
SSL_ENFORCE |
执行SSL | 0 | 强制要求在连接到服务器时使用SSL。看到表5.2,“SSL_ENFORCE和DISABLE_SSL_DEFAULT的综合效果”.5.3.6新增。
请注意
此选项自Connector/ODBC 5.3.7以来已弃用,并在8.0.13中被移除。最好使用 |
DISABLE_SSL_DEFAULT |
禁用默认SSL | 0 | 禁用使用SSL连接到服务器的默认要求。当设置为”0”[default],连接器/ODBC首先尝试连接SSL,如果无法建立SSL连接,则退回到不加密的连接。当设置为”1,”不尝试使用SSL连接,并且使用不加密连接,除非SSL_ENFORCE 也设置为”1.”看到表5.2,“SSL_ENFORCE和DISABLE_SSL_DEFAULT的综合效果”.5.3.6新增。
请注意
该选项自Connector/ODBC 5.3.7以来已弃用,在8.0.13中被移除。使用 |
SSLMODE |
SSL模式 | - | 设置服务器连接的SSL模式。该选项可以设置为以下任意值: 如果 5.3.7新增。此选项将覆盖已弃用的选项 |
SSL配置参数也可以从my.ini
或my.cnf
文件。看到使用选项文件.
表5.2 SSL_ENFORCE和DISABLE_SSL_DEFAULT的综合效果
Disable_ssl_default = 0 |
Disable_ssl_default = 1 |
|
---|---|---|
Ssl_enforce = 0 |
(默认)首先尝试使用SSL连接;如果不可能,则退回到未加密连接。 | 不尝试与SSL连接;使用非加密连接。 |
Ssl_enforce = 1 |
使用SSL连接;如果SSL连接无法建立,抛出错误。 | 使用SSL连接;如果SSL连接无法建立,抛出错误。DISABLE_SSL_DEFAULT = 1 是覆盖。 |
中列出的特殊选项参数也可以修改Connector/ODBC的行为表5.3“连接器/ODBC选项参数”,在连接字符串中指定或通过GUI对话框指定。所有连接参数也都有自己的数值常量,可以将这些数值相加作为控件的组合值选项
参数,用于指定这些选项。然而,数值选项
值只能启用,而不能禁用在DSN上启用的参数,只能通过使用连接字符串中的文本名称指定选项参数来覆盖这些参数。
而组合的数值为选项
参数可以通过添加选项的常量值轻松构造,但分解值以验证是否启用了特定选项可能比较困难。我们建议在连接字符串中使用选项的参数名称,因为它们是自解释的。
表5.3连接器/ODBC选项参数
参数名称 | GUI选项 | 恒定值 | 描述 |
---|---|---|---|
FOUND_ROWS |
返回匹配的行而不是受影响的行 | 2 | 当MySQL返回受影响行的真实值时,客户端无法处理。如果设置了这个标志,MySQL将返回”发现行”代替。您必须安装MySQL 3.21.14或更新版本才能正常工作。 |
BIG_PACKETS |
允许大结果集 | 8 | 不要为结果和绑定参数设置任何包限制。如果没有此选项,参数绑定将被截断为255个字符。 |
NO_PROMPT |
连接时不要提示 | 16 | 即使司机愿意提示,也不要提示。 |
DYNAMIC_CURSOR |
启用动态游标 | 32 | 启用或禁用动态游标支持。 |
NO_SCHEMA |
忽略列规范中的模式 | 64 | 中忽略数据库名称的使用db_name.tbl_name.col_name .在Connector/ODBC 8.0.13中删除了此选项;使用NO_CATALOG代替。 |
NO_DEFAULT_CURSOR |
禁用驱动程序提供的光标支持 | 128 | 强制使用ODBC管理器游标(试验性)。 |
NO_LOCALE |
不要使用setlocale() | 256 | 禁用扩展获取的使用(试验性)。 |
PAD_SPACE |
Pad CHAR到完整的长度与空间 | 512 | 垫字符 列到全列长度。 |
FULL_COLUMN_NAMES |
在SQLDescribeCol()中包含表名 | 1024 | SQLDescribeCol () 返回完全限定的列名。 |
COMPRESSED_PROTO |
使用压缩 | 2048 | 使用压缩客户端/服务器协议。 |
IGNORE_SPACE |
忽略函数名后面的空格 | 4096 | 告诉服务器忽略函数名前后的空格”( ”(PowerBuilder需要)。这使得所有函数名都成为关键字。 |
NAMED_PIPE |
命名管道 | 8192 | 将命名管道连接到mysqld在NT上运行的服务器。 |
NO_BIGINT |
将BIGINT列视为INT列 | 16384 | 改变长整型数字 列INT 列(一些应用程序无法处理长整型数字 ). |
NO_CATALOG |
禁用目录支持 | 32768 | 强制由目录函数产生的结果,例如SQLTables ,总是返回零 和驱动程序报告目录不支持。 |
USE_MYCNF |
从中读取选项my.cnf |
65536 | 从(客户端) 和(odbc) 组my.cnf . |
安全 |
启用安全选项 | 131072 | 增加一些额外的安全检查。 |
NO_TRANSACTIONS |
禁用事务支持 | 262144 | 禁用事务。 |
LOG_QUERY |
将查询记录到%TEMP%\myodbc.sql | 524288 | 启用查询日志记录到c: \ myodbc.sql (/ tmp / myodbc.sql )文件。(仅在调试模式下启用。) |
NO_CACHE |
不要缓存只向前游标的结果 | 1048576 | 不要在驱动程序中本地缓存结果,而是从服务器(mysql_use_result () ).这只适用于仅向前游标。当您不希望驱动程序缓存整个结果集时,此选项在处理大型表时非常重要。 |
FORWARD_CURSOR |
强制使用仅向前游标 | 2097152 | 强迫使用只能前进 指针类型。在应用程序设置默认的静态/动态游标类型,并且希望驱动程序使用非缓存结果集的情况下,该选项确保只向前的游标行为。 |
AUTO_RECONNECT |
启用自动重新连接 | 4194304 | 启用自动重连接功能。不使用此选项交易,因为在未完成的事务期间自动重连接可能会导致损坏。自动重新连接的连接将不会继承与原始连接相同的设置和环境。3.51.13新增。 |
AUTO_IS_NULL |
使SQL_AUTO_IS_NULL | 8388608 | 当 当 因此,省略该标志将禁用兼容性选项并强制执行SQL标准行为。 看到 |
ZERO_DATE_TO_MIN |
返回零日期的SQL_NULL_DATA | 16777216 | 转换零日期(XXXX-00-00 )转换为ODBC支持的最小日期值,XXXX-01-01 .这解决了一些语句无法工作的问题,因为返回的日期和最小ODBC日期值不兼容。3.51.17新增。 |
MIN_DATE_TO_ZERO |
将最小日期绑定为零日期 | 33554432 | 转换最小ODBC日期值(XXXX-01-01 )转换为MySQL支持的零日期格式(XXXX-00-00 ).这解决了一些语句无法工作的问题,因为返回的日期和最小ODBC日期值不兼容。3.51.17新增。 |
NO_DATE_OVERFLOW |
忽略数据溢出错误 | 0 | 如果时间部分丢失,则继续执行查询,而不是返回错误。服务器将忽略时间组件,结果就像它们是零一样。5.3.8新增。 |
MULTI_STATEMENTS |
允许多个语句 | 67108864 | 启用对批处理语句的支持。从8.0.24开始,准备一个包含多个语句的查询会引发错误。不支持直接执行使用SQLPrepare()函数准备的无参数语句。多个语句只能通过SQLExecDirec() ODBC函数执行。 |
COLUMN_SIZE_S32 |
将列大小限制为带符号的32位范围 | 134217728 | 将列大小限制为带符号的32位值,以防止在不支持较大列大小的应用程序中出现较大列大小的问题。在使用ADO应用程序时,会自动启用此选项。3.51.22新增。 |
NO_BINARY_RESULT |
始终将二进制函数结果作为字符数据处理 | 268435456 | 设置后,此选项将为空列禁用字符集63org_table .3.51.26新增。 |
DFLT_BIGINT_BIND_STR |
将BIGINT参数绑定为字符串 | 536870912 | 原因长整型数字 要绑定为字符串的参数。Microsoft Access款待长整型数字 作为链接表上的字符串。该值被正确读取,但被绑定为字符串。如果驱动程序由Microsoft Access使用,则自动使用此选项。5.1.3新增。 |
NO_INFORMATION_SCHEMA |
不要对元数据使用INFORMATION_SCHEMA | 1073741824 | 告诉不使用的编目函数INFORMATION_SCHEMA ,而是使用传统算法。这里的权衡通常是用速度换取信息质量。使用INFORMATION_SCHEMA 往往是慢的,但获得的信息比较完整。5.1.7新增。 |
表5.4“不同配置的推荐连接器/ODBC选项值”显示一些推荐的参数设置及其对应的参数选项
各种配置的值:
表5.4针对不同配置推荐的连接器/ODBC选项值
配置 | 参数设置 | 选项值 |
---|---|---|
微软Access, Visual Basic | FOUND_ROWS = 1; | 2 |
Microsoft Access(带有改进的DELETE查询) | FOUND_ROWS = 1; DYNAMIC_CURSOR = 1; | 34 |
Microsoft SQL Server | COLUMN_SIZE_S32 = 1; | 134217728 |
行太多的大表 | COMPRESSED_PROTO = 1; | 2048 |
Sybase PowerBuilder | IGNORE_SPACE = 1; FLAG_SAFE = 1; | 135168 |
查询日志生成(调试模式) | LOG_QUERY = 1; | 524288 |
无缓存结果的大表 | NO_CACHE = 1; FORWARD_CURSOR = 1; | 3145728 |
运行全表SELECT * FROM…查询,但只读取一小部分(N )从结果的行 |
预取=N |
不适用 |