Прежде чем вы соединитесь с базой данных MySQL, используя Connector/ODBC, вы формируете имя источника данных ODBC (DSN). DSN связывает различные параметры конфигурации, требуемые, чтобы общаться с базой данных. Вы используете DSN, чтобы общаться с базой данных, вместо того, чтобы определить отдельные параметры в самом приложении. Информация о DSN может быть определенной для пользователя, определенной для системы, или обеспеченная в специальном файле. Имена источника данных ODBC формируются по-разному, в зависимости от вашей платформы и ODBC.
Data Source Name связывает параметры конфигурации для связи с определенной базой данных. Обычно DSN состоит из следующих параметров:
Кроме того, различные ODBC, включая Connector/ODBC, могут принять дополнительные определенные для драйвера опции и параметры.
Есть три типа DSN:
System DSN глобальное определение DSN, которое доступно любому пользователю на конкретной системе. Системный DSN обычно может формироваться только системным администратором, или пользователем, у которого есть определенные разрешения, которые позволяют создать System DSN.
User DSN определенный для отдельного пользователя и может использоваться, чтобы хранить информацию соединения базы данных, которую регулярно использует пользователь.
File DSN использует простой файл, чтобы определить конфигурацию DSN. Файлы DSN могут быть разделены между пользователями и машинами, поэтому более практичны, устанавливая или развертывая информацию о DSN как часть приложения на многие машины.
Информация DSN хранится в различных местах в зависимости от вашей платформы и окружающей среды.
Можно определить параметры в следующих таблицах для Connector/ODBC, формируя DSN:
Пользователи Windows могут использовать
ODBC Data Source Administrator
, чтобы
устанавливать эти параметры, посмотрите
раздел 5.3
о том, как сделать это и
таблицу 5.1
для получения информации об областях и флажках, которым опции соответствуют
в графическом интерфейсе пользователя ODBC Data Source
Administrator
. В Unix и macOS используйте название параметра и
значение как пара ключевого слова/значения в конфигурации DSN.
Альтернативно, можно установить эти параметры в параметре
InConnectionString
вызова
SQLDriverConnect()
.
Таблица 5.1. Параметры конфигурации Connector/ODBC DSN
Параметр | Опция в GUI | Значение по умолчанию | Комментарий |
---|---|---|---|
user |
User | ODBC | Имя пользователя для соединения с MySQL. |
uid |
User | ODBC | Синоним user . Добавлен в 3.51.16. |
server |
TCP/IP Server | localhost |
Имя хоста сервера MySQL. |
database |
Database | - | База данных по умолчанию. |
option |
- | 0 | Опции, которые определяют, как Connector/ODBC работает. См. таблицу 5.3 и таблицу 5.4. |
port |
Port | 3306 | Порт TCP/IP, чтобы использовать, если
server не
localhost . |
initstmt |
Initial Statement | - | Первоначальный запрос, чтобы выполнить, соединяясь с MySQL.
В версии 3.51 параметр называют stmt .
Драйвер поддерживает первоначальный запрос, выполняемый только
во время начальной связи. |
password |
Password | - | Пароль для user
на server . |
pwd |
Password | - | Синоним password . Добавлен в 3.51.16. |
socket |
- | - | Файл сокета Unix или именованный канал Windows, чтобы соединиться, если
server = localhost
. |
sslca |
SSL Certificate | - | Путь к файлу со списком доверенных SSL CA. Добавлен в 3.51.16. |
sslcapath |
SSL CA Path | - | Путь к каталогу, который содержит доверенные сертификаты SSL CA в формате PEM. Добавлен в 3.51.16. |
sslcert |
SSL Certificate | - | Название файла сертификата SSL, чтобы использовать для установления безопасного соединения. Добавлено в 3.51.16. |
sslcipher |
SSL Cipher | - | Список допустимых шифров для шифрования SSL. У списка шифра тот же самый
формат, как у команды openssl ciphers .
Добавлен в 3.51.16. |
sslkey |
SSL Key | - | Название файла ключей SSL, чтобы использовать для установления безопасного соединения. Добавлено в 3.51.16. |
rsakey |
RSA Public Key | - | Полный путь к файлу PEM, который содержит открытый ключ RSA для использования плагина идентификации SHA256 MySQL. Добавлено в 5.3.4. |
sslverify |
Verify SSL | 0 | Если 1, сертификат SSL будет проверен, когда используется с
подключением MySQL. Если не установлено, то поведение по умолчанию должно
проигнорировать проверку сертификата SSL. Опция устарела, начиная с
Connector/ODBC 5.3.7. Предпочтительно использовать
SSLMODE . |
charset |
Character Set | - | Набор символов, чтобы использовать для связи. Добавлен 3.51.17. |
readtimeout |
- | - | Перерыв в секундах для попыток читать с сервера.
Каждая попытка использует это значение и при необходимости есть повторения,
таким образом, совокупное эффективное значение это три раза значение опции.
Можно установить значение так, чтобы потерянная связь могла быть обнаружена
ранее, чем значение TCP/IP Close_Wait_Timeout
(обычно 10 минут). Этот выбор работает только на связи TCP/IP и только в
Windows до MySQL 5.1.12. Соответствует опции
MYSQL_OPT_READ_TIMEOUT в библиотеке
MySQL Client. Добавлено в 3.51.27. |
writetimeout |
- | - | Перерыв в секундах для попыток писать в сервер.
Каждая попытка использует это значение перерыва и есть
net_retry_count повторов
при необходимости, таким образом, совокупное эффективное значение
перерыва net_retry_count раз значения опции.
Это работает только на связи TCP/IP и только на Windows до MySQL 5.1.12.
Соответствует опции MYSQL_OPT_WRITE_TIMEOUT в
библиотеке MySQL Client. Добавлено в 3.51.27. |
interactive |
Interactive Client | 0 | Если 1, опция CLIENT_INTERACTIVE в
mysql-real-connect() включена, добавлено в 5.1.7. |
prefetch |
Prefetch from server by _ rows at a time | 0 | Когда установлено в ненулевое значение
Это работает только с однонаправленными курсорами. Это не работает, когда
опциональный параметр |
no_ssps |
- | 0 | В Connector/ODBC 5.2 и позже по умолчанию применена серверная подготовка запросов. Когда этот выбор установлен в ненулевое значение, подготовленные запросы эмулированы на клиентской стороне, что является тем же самым поведением, как в 5.1 и 3.51. Добавлен в 5.2.0. |
can_handle_exp_pwd |
Can Handle Expired Password | 0 | Указывает, что приложение может работать с паролем с истекшим сроком,
который сообщен статусом SQL 08004
(Server rejected the connection
), код ошибки
ER_MUST_CHANGE_PASSWORD_LOGIN (1862).
Соединение отправлено в песочницу
, и ничего не может сделать кроме
SET PASSWORD . Чтобы установить связь в этом
случае, ваш запрос должен использовать опцию соединения
initstmt , чтобы установить новый пароль в
начале, или SET PASSWORD
немедленно после соединения. Как только пароль с истекшим сроком изменен,
ограничения на связь сняты. Посмотрите
ALTER USER Syntax. Добавлено в 5.2.4. |
ENABLE_CLEARTEXT_PLUGIN |
Enable Cleartext Authentication | 0 | Установите в 1, чтобы позволить идентификацию открытого текста. Добавлено в 5.1.13 и 5.2.5. |
ENABLE_LOCAL_INFILE |
Enable LOAD DATA operations | 0 | Строка подключения, DSN и опция GUI. Установите ENABLE_LOCAL_INFILE=1, чтобы позволить операции LOAD DATA. Это включает опцию MYSQL_OPT_LOCAL_INFILE в mysql_options(). Строка подключения отвергает значение DSN, если оба установлены. Добавлено в 5.3.12 и 8.0.14. |
GET_SERVER_PUBLIC_KEY |
Get Server Public Key | 0 | Соединяясь с учетками с использованием идентификации
Опция добавлена в Connector/ODBC 8.0.11 и 5.3.11. Это требует Connector/ODBC, построенного, пользуясь OpenSSL-библиотекой клиента MySQL. Если библиотека клиента MySQL, использовавшаяся Connector/ODBC, была построена с YaSSL, как имеет место для дистрибутивов GPL Connector/ODBC 5.3, опция не функционирует и проигнорирована. |
NO_TLS_1_0 |
Disable TLS 1.0 | 0 | Отвергает использование TLS 1.0 для шифрования связи. Все версии TLS позволены по умолчанию, и этот выбор исключает версию 1.0. Добавлен в 5.3.7. |
NO_TLS_1_1 |
Disable TLS 1.1 | 0 | Отвергает использование TLS 1.1 для шифрования связи. Все версии TLS позволены по умолчанию, и этот выбор исключает версию 1.1. Добавлен в 5.3.7. |
NO_TLS_1_2 |
Disable TLS 1.2 | 0 | Отвергает использование TLS 1.2 для шифрования связи. Все версии TLS позволены по умолчанию, и этот выбор исключает версию 1.2. Добавлен в 5.3.7. |
SSL_ENFORCE |
Enforce SSL | 0 | Требует использовать SSL для связей с сервером. См.
таблицу 5.2. Добавлена в 5.3.6.
Опция устарела, начиная с Connector/ODBC 5.3.7 и удалена в 8.0.13.
Предпочтительно использовать |
DISABLE_SSL_DEFAULT |
Disable default SSL | 0 | Отключает требование по умолчанию использовать SSL для связей с сервером.
Когда установлено в 0 [default], Connector/ODBC пытается соединиться с SSL
сначала и отступает к незашифрованной связи, если невозможно установить связь
SSL. Когда установлено в 1, связь с SSL не предпринята, и незашифрованная
связь используется, если SSL_ENFORCE
также установлена в 1. См.
таблицу 5.2. Добавлено в 5.3.6.
Опция устарела с Connector/ODBC 5.3.7 и удалена в 8.0.13.
Используйте SSLMODE . |
SSLMODE |
SSL Mode | - | Устанавливает способ SSL-связи сервера. Выбор может быть установлен в
любое из следующих значений: Если Добавлена в 5.3.7. Эта опция отвергает устаревшие
|
Параметры конфигурации SSL могут также быть автоматически загружены из
файла my.ini
или
my.cnf
. См.
Using Option Files.
Таблица 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,
определенных в строке подключения или через диалоговое окно графического
интерфейса пользователя. У всех параметров связи также есть их собственные
числовые постоянные величины, которые могут быть сложены как общее
значение для параметра option
для определения тех опций. Однако числовое значение
option
в строке подключения может только
позволить, но не отключить параметры, позволенные в DSN, которые могут быть
отвергнуты только, определив опциональные параметры, используя их текстовые
названия в строке подключения.
В то время как объединенное численное значение для
option
может быть легко построено добавлением
постоянных величин опций, анализ значения, чтобы проверить, позволены
ли конкретные варианты, может быть трудным. Мы рекомендуем использовать
названия параметра вместо этого в строке подключения, потому
что они очевидны.
Таблица 5.3. Опциональные параметры Connector/ODBC
Имя | Опция GUI | Константа | Описание |
---|---|---|---|
FOUND_ROWS |
Return matched rows instead of affected rows | 2 | Клиент не может обращаться, когда MySQL возвращает истинное число затронутых строк. Если этот флаг установлен, MySQL вернет found rows. У вас должен быть MySQL или выше. |
BIG_PACKETS |
Allow big result set | 8 | Не устанавливайте предел пакета для результатов и параметров. Без этого выбора привязка параметров будет усечена 255 знаками. |
NO_PROMPT |
Don't prompt when connecting | 16 | Не задавать вопросов. |
DYNAMIC_CURSOR |
Enable Dynamic Cursors | 32 | Позволить динамические курсоры. |
NO_SCHEMA |
Ignore schema in column specifications | 64 | Проигнорировать использование имени базы данных в
db_name.tbl_name.col_name .
Этот выбор был удален в Connector/ODBC 8.0.13, применяйте
NO_CATALOG. |
NO_DEFAULT_CURSOR |
Disable driver-provided cursor support | 128 | Использование экспериментальных курсоров менеджера ODBC. |
NO_LOCALE |
Don't use setlocale() | 256 | Отключите использование расширенного получения. |
PAD_SPACE |
Pad CHAR to full length with space | 512 | Дополнить CHAR
к полной длине столбца. |
FULL_COLUMN_NAMES |
Include table name in SQLDescribeCol() | 1024 | SQLDescribeCol() вернет полностью
квалифицированные имена столбцов. |
COMPRESSED_PROTO |
Use compression | 2048 | Используйте сжатый протокол клиент-сервер. |
IGNORE_SPACE |
Ignore space after function names | 4096 | Скажите серверу игнорировать пространство после имени функции и перед
( (надо для
PowerBuilder). Это делает все ключевые слова именами функций. |
NAMED_PIPE |
Named Pipe | 8192 | Соединитесь с именованным каналом сервера mysqld под NT. |
NO_BIGINT |
Treat BIGINT columns as INT columns | 16384 | Сменить BIGINT на
INT (ряд приложений не
понимают BIGINT ). |
NO_CATALOG |
Disable catalog support | 32768 | Результаты из функций каталога, например,
SQLTables , всегда
NULL , драйвер сообщит,
что каталоги не поддерживаются. |
USE_MYCNF |
Read options from my.cnf | 65536 | Прочитайте параметры из групп [client] и
[odbc] файла
my.cnf . |
SAFE |
Enable safe options | 131072 | Добавьте некоторые дополнительные проверки безопасности. |
NO_TRANSACTIONS |
Disable transaction support | 262144 | Отключить транзакции. |
LOG_QUERY |
Log queries to %TEMP%\myodbc.sql | 524288 | Регистрировать запросы в файл c:\myodbc.sql
(/tmp/myodbc.sql )
(только в режиме отладки). |
NO_CACHE |
Don't cache results of forward-only cursors | 1048576 | Не кэшировать результаты локально в драйвере. Вместо этого читать с
сервера (mysql_use_result() ).
Это работает только на однонаправленные курсоры. Этот выбор очень важен имея
дело с большими таблицами, когда вы не хотите, чтобы драйвер кэшировал
весь набор результатов. |
FORWARD_CURSOR |
Force use of forward-only cursors | 2097152 | Вызовите использование типа курсора Forward-only
. В случаях запросов, устанавливающих по умолчанию статический или
динамический тип курсора и ожидающих, чтобы драйвер не использовал
кэширование наборов результатов, этот выбор гарантирует
поведение однонаправленного курсора. |
AUTO_RECONNECT |
Enable automatic reconnect | 4194304 | Позволяет функциональность автореконнекта. Не используйте этот выбор с транзакциями, так как повторное автосоединение во время незавершенной транзакции может вызвать сбой. Переподключенная связь не унаследует те же самые параметры настройки и окружающую среду как оригинальная связь. Добавлено в 3.51.13. |
AUTO_IS_NULL |
Enable SQL_AUTO_IS_NULL | 8388608 | Когда установлено Когда не установлено Таким образом исключение флага отключает выбор совместимости и вызывает стандартное поведение SQL. См. |
ZERO_DATE_TO_MIN |
Return SQL_NULL_DATA for zero date | 16777216 | Переводит нулевые даты (XXXX-00-00 ) в
минимальные значения даты, поддержанные ODBC,
XXXX-01-01 . Это решает вопрос, где некоторые
запросы не будут работать, потому что возвращенная дата и минимальное
значение даты ODBC несовместима. Добавлено в 3.51.17. |
MIN_DATE_TO_ZERO |
Bind minimal date as zero date | 33554432 | Переводит минимальное значение даты ODBC
(XXXX-01-01 ) к нулевому формату даты,
поддержанному MySQL (XXXX-00-00 ).
Это решает вопрос, где некоторые
запросы не будут работать, потому что возвращенная дата и минимальное
значение даты ODBC несовместима. Добавлено в 3.51.17. |
NO_DATE_OVERFLOW |
Ignore data overflow error | 0 | Продолжить выполнение запросов, вместо возврата ошибки, если часть времени отсутствует. Сервер проигнорирует компоненты времени, и результат совпадает, если они были нолями. Добавлено в 5.3.8. |
MULTI_STATEMENTS |
Allow multiple statements | 67108864 | Позволяет поддержку пакетных запросов. Добавлено в 3.51.18. |
COLUMN_SIZE_S32 |
Limit column size to signed 32-bit range | 134217728 | Ограничивает размер столбца значениями signed 32-bit, чтобы предотвратить проблемы с большими размерами столбца в запросах, которые не поддерживают их. Этот выбор автоматически позволен, работая с приложениями ADO. Добавлено в 3.51.22. |
NO_BINARY_RESULT |
Always handle binary function results as character data | 268435456 | Когда установлено, этот выбор отключает charset 63 для столбцов с пустым
org_table . Добавлено в 3.51.26. |
DFLT_BIGINT_BIND_STR |
Bind BIGINT parameters as strings | 536870912 | Передает параметры BIGINT , которые будут
связаны, как строки. Microsoft Access обрабатывает
BIGINT как последовательность на связанных
таблицах. Значение прочитано правильно, но связано как последовательность.
Этот выбор используется автоматически, если драйвер используется
Microsoft Access. Добавлено в 5.1.3. |
NO_INFORMATION_SCHEMA |
Don't use INFORMATION_SCHEMA for metadata | 1073741824 | Не применять для метаданных
INFORMATION_SCHEMA ,
а использовать устаревшие алгоритмы. Компромисс здесь обычно скорость
перед информационным качеством. Использование
INFORMATION_SCHEMA часто медленное, но
полученная информация более полна. Добавлено в 5.1.7. |
Таблица 5.4. Рекомендуемые значения опций Connector/ODBC для различных конфигураций
Конфигурация | Установки параметров | Значение опций |
---|---|---|
Microsoft Access, Visual Basic | FOUND_ROWS=1; | 2 |
Microsoft Access (с улучшенными запросами удаления) | 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 ) строк из результата. |
PREFETCH=N |
Неприменимо. |
Чтобы добавить или настроить Connector/ODBC 5.x или 8.x DSN в Windows,
используйте ODBC Data Source Administrator
GUI
или myodbc-installer.exe,
который идет с Connector/ODBC.
ODBC Data Source Administrator
в Windows
позволяет вам создать DSN, проверить установку драйвера и формировать функции
ODBC, такие как отслеживание (используется для отладки) и объединение связи.
Следующее это шаги для создания и формирования DSN с
ODBC Data Source Administrator
:
Откройте ODBC Data Source Administrator
.
Различные выпуски и версии Windows хранят
ODBC Data Source Administrator
в разных местах.
Для инструкций по открытию
ODBC Data Source Administrator
, см.
документацию на Windows,
эти инструкции Microsoft касаются некоторых версий Windows.
Необходимо видеть окно, подобное следующему, когда вы открываете
ODBC Data Source Administrator
:
Рис. 5.1. ODBC Data Source Administrator
Чтобы создать System DSN (который будет доступен всем пользователям), выберите вкладку System DSN. Чтобы создать пользовательский DSN, который будет доступен только нынешнему пользователю, нажмите кнопку , чтобы открыть диалог "Create New Data Source".
Из диалога "Create New Data Source" выберите MySQL
ODBC 5.x
ANSI or Unicode Driver,
нажмите , чтобы открыть его
диалог параметров связи.
Рис. 5.2. Диалог Create New Data Source: выбор MySQL ODBC Driver
Теперь необходимо формировать определенные области
для DSN, который вы создаете, через диалог
Connection Parameters
.
Рис. 5.3. Диалог Data Source Configuration
Connection Parameters
В диалоге Data Source Name введите имя источника данных. Это может быть любое действительное имя, которое вы выбираете.
Чтобы определить, был ли DSN создан, используя 32 или 64-битный драйвер,
включите драйвер, используемый в идентификаторе DSN. Это поможет вам
определить правильный DSN, чтобы использовать с приложениями вроде Excel,
которые совместимы только с 32-битным драйвером. Например, вы могли бы
добавить Using32bitCODBC
к идентификатору DSN для 32-битного интерфейса и
Using64bitCODBC
для тех, которые
используют 64-битный драйвер.
В диалоге Description введите некоторый текст, чтобы помочь определить связь.
В поле Server введите
имя сервера MySQL. По умолчанию это localhost
.
В поле User введите имя пользователя для этой связи.
В поле Password введите соответствующий пароль для этой связи.
Окно Database должно быть автоматически заполнено списком баз данных, к которым у пользователя есть разрешения получить доступ.
Чтобы общаться по другому порту TCP/IP, чем порт по умолчанию (3306), смените значение Port.
Нажмите
, чтобы сохранить настройки DSN.Чтобы проверить связь, используя параметры, щелкните кнопку
Connection Successful
, иначе
диалогом Connection Failed
.
Можно формировать много возможностей для определенного DSN, нажимая кнопку
.Рис. 5.4. Диалог Connector/ODBC Connect Options
В диалоге Details можно настроить:
Connections, Metadata и Cursors/Results позволяют вам выбрать дополнительные флаги для связи DSN. Для получения дополнительной информации об этих флагах посмотрите раздел 5.2.
Для версии Unicode Connector/ODBC из-за его родной поддержки Unicode, вы
не должны определять начальный набор символов, который будет использоваться с
вашей связью. Однако для версии ANSI, если вы хотите использовать
многобайтовый набор символов, такой как UTF-16 или UTF-32 первоначально,
определите его в диалоге Character Set,
однако, это не необходимо для использования UTF-8 или UTF-8-MB4
первоначально, потому что они не содержат байт
\0
в любых знаках, и поэтому драйвер ANSI не
усекает последовательности случайно, находя байты
\0
.
Debug позволяет вам
включить отладку ODBC, чтобы сделать запись запросов, которые вы выполняете
через DSN, в файл myodbc.sql
. См.
раздел 5.8.
SSL формирует дополнительные опции, требуемые для использования Secure Sockets Layer (SSL), общаясь с сервером MySQL.
Рис. 5.5. Диалог Connector/ODBC Connect Options: опции SSL
Необходимо также позволить и настроить SSL на сервере MySQL с подходящими сертификатами, чтобы сообщить использование его, используя SSL.
Используйте myodbc-installer.exe для настройки Connector/ODBC из командной строки.
Выполните myodbc-installer.exe без аргументов, чтобы просмотреть список доступных параметров.
Этот раздел отвечает на вопросы, связанные со связью Connector/ODBC.
Формируя Connector/ODBC DSN, происходит ошибка
Could Not Load Translator or Setup Library
См. MS KnowledgeBase Article(Q260558).
Кроме того, удостоверьтесь, что у вас есть последний действительный
ctl3d32.dll
в вашем системном каталоге.
Имена файлов Connector/ODBC .dll (Windows) и .so (Linux) зависят от нескольких факторов:
Версия Connector/ODBC: цифра в имени файла указывает на главный номер версии Connector/ODBC. Например, файл под названием myodbc8w.dll для Connector/ODBC 8.x, тогда как myodbc5w.dll для Connector/ODBC 5.x.
Driver Type: Драйвер Unicode добавляет символ "w" к именам файлов, чтобы указать, что широкие символы поддерживаются. Например, myodbc8w.dll для драйвера Unicode. ANSI-драйвер добавляет "a" вместо "w", подобно myodbc8a.dll.
GUI Setup module: файлы модуля установки GUI добавляют "S" к именам файлов.
Предоставление возможности режима отладки: как правило, режим отладки не позволен, поскольку он тормозит работу. Драйвер должен быть собран с режимом отладки.
Чтобы формировать DSN на macOS, можно использовать утилиту командной
строки (myodbc-installer),
отредактировать файл odbc.ini
в каталоге
Library/ODBC
домашнего каталога
пользователя или использовать ODBC Administrator GUI.
ODBC Administrator есть в OS X v10.5 и выше, пользователи более поздних версий OS X и macOS должны загрузить и установить его вручную.
Чтобы создать DSN с использованием myodbc-installer, необходимо только определить тип DSN и строку подключения DSN. Например:
// With Connector/ODBC 8.0: shell> myodbc-installer -a -s -t"DSN=mydb;DRIVER=MySQL ODBC 8.0 Driver;SERVER=mysql;USER=username;PASSWORD=pass" // With Connector/ODBC 5.3: shell> myodbc-installer -a -s -t"DSN=mydb;DRIVER=MySQL ODBC 5.3 Driver;SERVER=mysql;USER=username;PASSWORD=pass"
Чтобы использовать ODBC Administrator:
Для правильной работы ODBC Administrator
гарантируйте, что файл /Library/ODBC/odbc.ini
раньше настраивал возможность соединения ODBC, и DSN перезаписываемы группой
admin
. Если этот файл не перезаписываем этой
группой, то ODBC Administrator может потерпеть неудачу или, может казаться,
работает, но не производит правильные записи.
Там известны проблемы с macOS ODBC Administrator
и Connector/ODBC, которые могут препятствовать тому, чтобы вы создали DSN,
используя этот метод. В этом случае используйте командную строку или
отредактируйте файл odbc.ini
напрямую.
Существующий DSN или те, которые вы создали с использованием инструмента
myodbc-installer, могут все еще
быть проверены и отредактированы с использованием ODBC Administrator.
Откройте ODBC Administrator из папки
Utilities
в
Applications
.
Рис. 5.6. Диалог ODBC Administrator
Из диалога ODBC Administrator
выберите
User DSN или
System DSN и нажмите
.
Выберите драйвер Connector/ODBC и нажмите
.Откроется диалог Data Source
Name
(DSN). Введите Data Source Name
и
возможно Description
для DSN.
Рис. 5.7. Диалог ODBC Administrator Data Source
Name
Нажмите server
,
username
, password
и database
, см.
раздел 5.2.
Нажмите
, чтобы добавить DSN к списку формируемых имен источников данных.Законченная конфигурация DSN может быть похожей на это:
Рис. 5.8. Образец ODBC Administrator DSN
Можно формировать другие варианты ODBC в DSN, добавляя дальнейшие пары ключевого слова/значения и устанавливая соответствующие значения. Посмотрите раздел 5.2.
В Unix
вы формируете записи DSN
непосредственно в файле odbc.ini
.
Вот типичный файл odbc.ini
, который формирует
myodbc8w
(Unicode)
myodbc8a
(ANSI) как имена DSN
для Connector/ODBC 8.0:
; ;odbc.ini configuration for Connector/ODBC 8.0 driver ; [ODBC Data Sources] myodbc8w = MyODBC 8.0 UNICODE Driver DSN myodbc8a = MyODBC 8.0 ANSI Driver DSN [myodbc8w] Driver = /usr/local/lib/libmyodbc8w.so Description= Connector/ODBC 8.0 UNICODE Driver DSN SERVER = localhost PORT = USER = root Password = Database = test OPTION = 3 SOCKET = [myodbc8a] Driver = /usr/local/lib/libmyodbc8a.so Description= Connector/ODBC 8.0 ANSI Driver DSN SERVER = localhost PORT = USER = root Password = Database = test OPTION = 3 SOCKET =
См. раздел 5.2 для списка параметров связи, которые могут применяться.
Если Вы используете unixODBC
,
можно использовать следующие инструменты, чтобы настроить DSN:
ODBCConfig
GUI tool
(HOWTO:
ODBCConfig).
odbcinst
.
В некоторых случаях, используя unixODBC
,
вы могли бы получить эту ошибку:
Data source name not found and no default driver specified
Если это происходит, удостоверьтесь, что переменные окружения
ODBCINI
и
ODBCSYSINI
указывают на файл
odbc.ini
. Например, если ваш файл
odbc.ini
лежит в
/usr/local/etc
,
установите переменные окружения:
export ODBCINI=/usr/local/etc/odbc.ini export ODBCSYSINI=/usr/local/etc
Можно соединиться с использованием сервера MySQL
SQLDriverConnect
, определяя поле имени
DRIVER
. Вот строки подключения для
Connector/ODBC, использующего соединение без DSN:
ConnectionString = "DRIVER={MySQL ODBC 8.0 Driver};\ SERVER=localhost;\ DATABASE=test;\ USER=venu;\ PASSWORD=venu;\ OPTION=3;"
Замените MySQL ODBC 8.0 Driver на имя, под которым вы зарегистрировали свой драйвер Connector/ODBC в менеджере драйверов ODBC, если это отличается. Если ваш язык программирования преобразовывает наклонную черту влево, сопровождаемую пробелом, в пробел, предпочтительно определить строку подключения как единственную длинную строку или использовать связь многократных последовательностей, которая не добавляет промежуточные пробелы. Например:
ConnectionString = "DRIVER={MySQL ODBC 8.0 Driver};" "SERVER=localhost;" "DATABASE=test;" "USER=venu;" "PASSWORD=venu;" "OPTION=3;"
В macOS вы, возможно, должны были бы определить полный путь к библиотеке драйвера Connector/ODBC.
См. раздел 5.2 для списка параметров связи, которые могут использоваться.
Объединение связи позволяет драйверу снова использовать существующие связи с данной базой данных из пула связей, вместо того, чтобы открыть новую связь каждый раз, когда к базе данных получают доступ. Позволяя объединение связи, можно улучшить общую производительность вашего запроса, понизив время, потраченное, чтобы открыть связь с базой данных.
Для получения дополнительной информации об объединении связи см. http://support.microsoft.com/default.aspx?scid=kb;EN-US;q169470 .
Если вы сталкиваетесь с трудностями или проблемами с Connector/ODBC,
запустите файл журнала из ODBC Manager
и
Connector/ODBC. Это называют трассировкой
и управляют через менеджер ODBC. Процедура этого отличается для Windows,
macOS и Unix.
Чтобы включить трассировку в Windows:
Вкладка Tracing
диалогового окна
ODBC Data Source Administrator позволяет вам формировать способ, которым
прослеживаются вызовы функции ODBC.
Рис. 5.9. Диалог ODBC Data Source Administrator Tracing
Когда вы активируете отслеживание с вкладки
Tracing
, Driver
Manager
пишет все вызовы функций ODBC
для всех впоследствии запущенных приложений.
Вызовы функций ODBC из приложений, запущенных перед включением отслеживания, не зарегистрированы. Вызовы функции ODBC зарегистрированы в файле журнала, который вы определяете.
Отслеживание прекращается только после того, как
вы щелкнете Stop Tracing Now
.
Помните, что, в то время как отслеживание идет, файл журнала продолжает
увеличиваться в размере и что отслеживание влияет на исполнение всех
ваших запросов к ODBC.
Чтобы позволить трассировку в macOS, используйте вкладку
Tracing
в
ODBC Administrator.
Откройте ODBC Administrator.
Выберите вкладку Tracing
.
Рис. 5.10. Диалог ODBC Administrator Tracing
Выберите пункт Enable Tracing
.
Укажите место, чтобы сохранить журнал. Чтобы добавить информацию к существующему файлу журнала, нажмите кнопку
.Чтобы включить трассировку в OS X 10.2 (и ранее) или в Unix, добавьте
опцию trace
в конфигурацию ODBC:
В Unix явно установите опцию
Trace
в файле
ODBC.INI
.
Установите отслеживание ON
или
OFF
, используя параметры
TraceFile
и Trace
в
odbc.ini
:
TraceFile= /tmp/odbc.trace Trace= 1
TraceFile
определяет имя и полный путь файла
трассировки, Trace
устанавливается в
ON
or OFF
.
Можно также использовать 1
или
YES
для ON
и
0
или NO
для
OFF
. При использовании
ODBCConfig из
unixODBC
следуйте инструкциям для отслеживания
вызовов unixODBC
в
HOWTO-ODBCConfig.
Чтобы произвести регистрацию Connector/ODBC, сделайте следующее:
В Windows включите опцию
Trace Connector/ODBC
на экране
Connector/ODBC connect/configure. Журнал написан в файл
C:\myodbc.log
. Если опция не запоминается,
когда вы возвращаетесь к вышеупомянутому экрану, это означает, что вы не
используете драйвер myodbcd.dll
, см.
раздел 5.3.3.
В macOS, Unix или при использовании соединения без DSN,
укажите OPTION=4
в строке подключения или
соответствующую пару ключевого слова/значения в DSN.
Запустите свое приложение и попытайтесь заставить его терпеть неудачу. Проверьте файл трассировки Connector/ODBC, чтобы узнать то, что могло быть неправильным.
Если вы нуждаетесь в помощи, определяя что не так, посмотрите раздел 9.1.