5.4.50 mysql_options()
int
mysql_options(MYSQL *mysql,
enum mysql_option option,
const void *arg)
Описание
Может использоваться для установки дополнительных параметров подключения и влияния на поведение соединения. Эту функцию можно вызывать несколько раз для установки нескольких параметров. Для получения значений параметров используйте mysql_get_option().
Вызовите mysql_options() после mysql_init() и перед mysql_connect() или mysql_real_connect().
Аргумент option — это параметр, который нужно установить; аргумент arg — значение параметра. Если параметр является целым числом, укажите указатель на значение целого числа как аргумент arg.
Параметры, такие как файлы SSL-сертификата и ключа, используются для установления зашифрованного соединения, если такие соединения доступны, но не налагают требования, чтобы полученное соединение было зашифрованным. Для требования зашифрованного соединения используйте метод, описанный в разделе 3.6.1, «Поддержка зашифрованных соединений».
В приведенном ниже списке описаны возможные параметры, их влияние и то, как используется arg для каждого параметра. Для описаний параметров, где указано, что arg не используется, его значение не имеет значения; принято передавать 0. Некоторые параметры применимы только в том случае, если приложение связано с встроенной серверной библиотекой libmysqld и не используются для приложений, связанных с клиентской библиотекой libmysqlclient.
-
MYSQL_DEFAULT_AUTH(argument type:char *)Имя используемого плагина аутентификации.
-
MYSQL_ENABLE_CLEARTEXT_PLUGIN(argument type:my_bool *)Включить плагин аутентификации с открытым текстом
mysql_clear_password. См. . -
MYSQL_INIT_COMMAND(argument type:char *)SQL-запрос для выполнения при подключении к серверу MySQL. Автоматически перевыполняется при повторном подключении.
-
MYSQL_OPT_BIND(argument:char *)Сетевой интерфейс, через который следует подключаться к серверу. Используется, когда клиентский хост имеет несколько сетевых интерфейсов. Аргумент представляет собой имя хоста или IP-адрес (указанный в виде строки).
-
MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS(argument type:my_bool *)Указывает, может ли клиент обрабатывать просроченные пароли. См. .
-
MYSQL_OPT_COMPRESS(argument: not used)Сжимать всю информацию, отправляемую между клиентом и сервером, если это возможно. См. .
-
MYSQL_OPT_CONNECT_ATTR_DELETE(argument type:char *)Учитывая имя ключа, этот параметр удаляет пару ключ-значение из текущего набора атрибутов соединения, которые нужно передать серверу во время подключения. Аргументом является указатель на строку, завершающуюся нулевым символом, которая задает имя ключа. Сравнение имени ключа с существующими ключами чувствительно к регистру.
См. также описание параметра
MYSQL_OPT_CONNECT_ATTR_RESET, а также описание параметраMYSQL_OPT_CONNECT_ATTR_ADDв описании функцииmysql_options4(). Описание этой функции также включает пример использования.Performance Schema предоставляет доступ к атрибутам соединения через таблицы и . См. .
-
MYSQL_OPT_CONNECT_ATTR_RESET(argument not used)Этот параметр сбрасывает (очищает) текущий набор атрибутов соединения, которые нужно передать серверу во время подключения.
См. также описание параметра
MYSQL_OPT_CONNECT_ATTR_DELETE, а также описание параметраMYSQL_OPT_CONNECT_ATTR_ADDв описании функцииmysql_options4(). Описание этой функции также включает пример использования.Performance Schema предоставляет доступ к атрибутам соединения через таблицы и . См. .
-
MYSQL_OPT_CONNECT_TIMEOUT(argument type:unsigned int *)Время ожидания подключения в секундах.
-
MYSQL_OPT_GET_SERVER_PUBLIC_KEY(argument type:my_bool *)Позволяет клиенту запрашивать у сервера открытый ключ, необходимый для обмена паролями на основе пары ключей RSA. Этот параметр применяется к клиентам, которые аутентифицируются с помощью плагина аутентификации
caching_sha2_password. Для этого плагина сервер не отправляет открытый ключ, если он не запрошен. Этот параметр игнорируется для учетных записей, которые не аутентифицируются с помощью этого плагина. Он также игнорируется, если обмен паролями на основе RSA не используется, как это происходит, когда клиент подключается к серверу с использованием защищенного соединения.Если указан
MYSQL_SERVER_PUBLIC_KEYи указывает на допустимый файл открытого ключа, он имеет приоритет надMYSQL_OPT_GET_SERVER_PUBLIC_KEY.Для получения информации о плагине
caching_sha2_passwordсм. .Этот параметр был добавлен в MySQL 5.7.23.
-
MYSQL_OPT_GUESS_CONNECTION(argument: not used)Для приложения, связанного с библиотекой встроенного сервера
libmysqld, этот параметр позволяет библиотеке определить, использовать ли встроенный сервер или удаленный сервер. “Определение” означает, что если имя хоста установлено и не являетсяlocalhost, используется удаленный сервер. Это поведение является значением по умолчанию.MYSQL_OPT_USE_EMBEDDED_CONNECTIONиMYSQL_OPT_USE_REMOTE_CONNECTIONмогут быть использованы для его переопределения. Этот параметр игнорируется для приложений, связанных с клиентской библиотекойlibmysqlclient. -
MYSQL_OPT_LOCAL_INFILE(argument type: optional pointer tounsigned int)Этот параметр влияет на возможности загрузки данных с локального хранилища для операций . По умолчанию возможности определяются значением по умолчанию, скомпилированным в клиентскую библиотеку MySQL. Чтобы явно управлять этой возможностью, вызовите
mysql_options()для включения или отключения параметраMYSQL_OPT_LOCAL_INFILE:Чтобы включить загрузку данных
LOCAL, установите указатель так, чтобы он указывал наunsigned int, имеющее ненулевое значение, или опустите аргумент указателя.Чтобы отключить загрузку данных
LOCAL, установите указатель так, чтобы он указывал наunsigned int, имеющее нулевое значение.
Параметр CMake управляет значением по умолчанию клиентской библиотеки для локальной загрузки данных (см. ).
Успешное использование операций загрузки
LOCALклиентом также требует, чтобы сервер разрешал локальную загрузку; см. -
MYSQL_OPT_MAX_ALLOWED_PACKET(argument:unsigned long *)Этот параметр устанавливает размер буфера для связи клиент/сервер на стороне клиента. Если аргумент
mysqlне являетсяNULL, вызов устанавливает значение параметра для этого сеанса. ЕслиmysqlявляетсяNULL, вызов устанавливает значение параметра глобально для всех последующих сеансов, для которых не указано значение, специфичное для сеанса.Поскольку можно установить максимальный размер буфера для сеанса или глобально, в зависимости от того, является ли аргумент
mysqlне-NULLилиNULL,mysql_get_option()аналогично возвращает значение сеанса или глобальное значение в зависимости от его аргументаmysql. -
MYSQL_OPT_NAMED_PIPE(argument: not used)Использовать именованный канал для подключения к серверу MySQL в Windows, если сервер разрешает подключения через именованные каналы.
-
MYSQL_OPT_NET_BUFFER_LENGTH(argument:unsigned long *)Этот параметр устанавливает размер буфера на стороне клиента для связи TCP/IP и сокетов.
-
MYSQL_OPT_PROTOCOL(argument type:unsigned int *)Транспортный протокол, используемый для соединения. Укажите одно из перечисленных значений
mysql_protocol_type, определенных вmysql.h. -
MYSQL_OPT_READ_TIMEOUT(argument type:unsigned int *)Время ожидания в секундах для каждой попытки чтения с сервера. При необходимости выполняются повторные попытки, поэтому общее эффективное значение времени ожидания в три раза больше значения параметра. Вы можете установить значение так, чтобы потерянное соединение можно было обнаружить раньше, чем значение TCP/IP
Close_Wait_Timeoutв 10 минут. -
MYSQL_OPT_RECONNECT(argument type:my_bool *)Включить или отключить автоматическое повторное подключение к серверу, если обнаружено, что соединение было потеряно. Повторное подключение отключено по умолчанию; этот параметр предоставляет способ явного задания поведения повторного подключения. См. Раздел 3.6.6, «Управление автоматическим повторным подключением».
-
MYSQL_OPT_RETRY_COUNT(argument type:unsigned int *)Количество попыток для системных вызовов, связанных с вводом-выводом, которые прерываются при подключении к серверу или обмене данными с ним. Если этот параметр не указан, значение по умолчанию равно 1 (1 повторная попытка, если исходный вызов прерван, всего 2 попытки).
Этот параметр может использоваться только клиентами, которые связаны с C-клиентской библиотекой, скомпилированной с поддержкой NDB Cluster. Он доступен начиная с MySQL NDB Cluster 7.5.1.
-
MYSQL_OPT_SSL_CA(argument type:char *)Имя файла сертификата центра сертификации (CA). Этот параметр, если используется, должен указывать на тот же сертификат, что и сервер.
-
MYSQL_OPT_SSL_CAPATH(argument type:char *)Имя каталога, содержащего доверенные файлы сертификатов SSL CA.
-
MYSQL_OPT_SSL_CERT(argument type:char *)Имя файла сертификата открытого ключа клиента.
-
MYSQL_OPT_SSL_CIPHER(argument type:char *)Список допустимых шифров для шифрования SSL.
-
MYSQL_OPT_SSL_CRL(argument type:char *)Имя файла, содержащего списки отозванных сертификатов.
-
MYSQL_OPT_SSL_CRLPATH(argument type:char *)Имя каталога, содержащего файлы, содержащие списки отозванных сертификатов.
-
MYSQL_OPT_SSL_ENFORCE(argument type:my_bool *)Требовать ли использование SSL для соединения. Если включено и зашифрованное соединение не может быть установлено, попытка соединения завершается неудачей.
Этот параметр устарел, начиная с MySQL 5.7.11, и удален в MySQL 8.0. Вместо этого используйте
MYSQL_OPT_SSL_MODEсо значениемSSL_MODE_REQUIRED. -
MYSQL_OPT_SSL_KEY(argument type:char *)Имя файла закрытого ключа клиента.
-
MYSQL_OPT_SSL_MODE(argument type:unsigned int *)Режим безопасности, используемый для соединения с сервером:
SSL_MODE_DISABLED,SSL_MODE_PREFERRED,SSL_MODE_REQUIRED,SSL_MODE_VERIFY_CA,SSL_MODE_VERIFY_IDENTITY. Если этот параметр не указан, значение по умолчанию —SSL_MODE_PREFERRED. Эти режимы являются допустимыми значениями перечисленияmysql_ssl_mode, определенного вmysql.h. Для получения дополнительной информации о режимах безопасности см. описание в .Этот параметр был добавлен в MySQL 5.7.11.
-
MYSQL_OPT_SSL_VERIFY_SERVER_CERT(argument type:my_bool *)Включить или отключить проверку идентификатора общего имени сервера в его сертификате по сравнению с именем хоста, используемым при подключении к серверу. Соединение отклоняется, если существует несоответствие. Для зашифрованных соединений эта функция может использоваться для предотвращения атак «человек посередине». Проверка идентификации отключена по умолчанию.
Этот параметр не работает с самозаверяющими сертификатами, которые не содержат имя сервера в качестве значения общего имени.
Этот параметр устарел, начиная с MySQL 5.7.11, и удален в MySQL 8.0. Вместо этого используйте
MYSQL_OPT_SSL_MODEсо значениемSSL_MODE_VERIFY_IDENTITY.
-
MYSQL_OPT_TLS_VERSION(тип аргумента:char *)Протоколы, разрешенные клиентом для шифрованных соединений. Значение представляет собой список одной или нескольких версий протоколов, разделенных запятыми. Протоколы, которые могут быть указаны для этого параметра, зависят от используемой библиотеки SSL для компиляции MySQL. Для получения подробностей см. .
Этот параметр был добавлен в MySQL 5.7.10.
-
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 *)Читать параметры из указанного файла параметров вместо файла
my.cnf. -
MYSQL_READ_DEFAULT_GROUP(тип аргумента:char *)Считывать параметры из указанной группы из
my.cnfили файла, указанного с помощьюMYSQL_READ_DEFAULT_FILE. -
MYSQL_REPORT_DATA_TRUNCATION(тип аргумента:my_bool *)Включить или выключить отчет об ошибках усечения данных для подготовленных запросов, использующих член
errorструктурMYSQL_BIND. (По умолчанию: включено.) -
MYSQL_SECURE_AUTH(тип аргумента:my_bool *)Подключаться ли к серверу, который не поддерживает хеширование паролей, используемое в MySQL 4.1.1 и более поздних версиях. Этот параметр включен по умолчанию.
-
MYSQL_SERVER_PUBLIC_KEY(тип аргумента:char *)Имя файла с копией открытого ключа со стороны клиента в формате PEM, необходимой серверу для обмена паролями на основе пар ключей RSA. Этот параметр применяется к клиентам, которые аутентифицируются с помощью плагина аутентификации
sha256_password. Этот параметр игнорируется для учетных записей, которые не аутентифицируются с помощью одного из этих плагинов. Он также игнорируется, если обмен паролями на основе RSA не используется, как в случае, когда клиент подключается к серверу с использованием защищенного соединения.Если
MYSQL_SERVER_PUBLIC_KEYзадан и указывает на действительный файл открытого ключа, он имеет приоритет передMYSQL_OPT_GET_SERVER_PUBLIC_KEY.Сведения о плагинах
sha256_passwordиcaching_sha2_passwordсм. в и . -
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, если сервер поддерживает подключения через общую память. Укажите то же значение, что и для переменной системы. сервера mysqld, к которому вы хотите подключиться.
Группа client всегда читается, если вы используете MYSQL_READ_DEFAULT_FILE или MYSQL_READ_DEFAULT_GROUP.
Указанная группа в файле параметров может содержать следующие параметры.
| Параметр | Описание |
|---|---|
character-sets-dir= | Директория, в которой установлены наборы символов. |
compress | Использовать сжатый протокол клиент/сервер. |
connect-timeout= | Таймаут подключения в секундах. В Linux этот таймаут также используется для ожидания первого ответа от сервера. |
database= | Подключиться к этой базе данных, если база данных не была указана в команде подключения. |
debug | Параметры отладки. |
default-character-set= | Набор символов по умолчанию. |
disable-local-infile | Отключить использование . |
enable-cleartext-plugin | Включить плагин аутентификации mysql_clear_password в режиме открытого текста. |
host= | Имя хоста по умолчанию. |
init-command= | Запрос для выполнения при подключении к серверу MySQL. Автоматически повторно выполняется при повторном подключении. |
interactive-timeout= | То же, что и указание CLIENT_INTERACTIVE для mysql_real_connect(). См. Раздел 5.4.54, «mysql_real_connect()». |
local-infile[={0|1}] | Если не указан аргумент или аргумент равен нулю, включить использование ; в противном случае отключить. |
max_allowed_packet= | Максимальный размер пакета, который клиент может прочитать от сервера. |
multi-queries, multi-results
| Включить несколько наборов результатов из многострочных запросов или хранимых процедур. |
multi-statements | Разрешить клиенту отправлять несколько запросов в одной строке (разделенных символами ;). |
password= | Пароль по умолчанию. |
pipe | Использовать именованные каналы для подключения к серверу MySQL в Windows. |
port= | Номер порта по умолчанию. |
protocol={TCP|SOCKET|PIPE|MEMORY} | Протокол, используемый при подключении к серверу. |
return-found-rows | Указать mysql_info() возвращать найденные строки вместо обновленных строк при использовании . |
shared-memory-base-name= | Имя общей памяти, используемое для подключения к серверу. |
socket={ | Файл сокета по умолчанию. |
ssl-ca= | Файл центрального сертификационного органа (Certificate Authority). |
ssl-capath= | Каталог центрального сертификационного органа (Certificate Authority). |
ssl-cert= | Файл сертификата. |
ssl-cipher= | Разрешенные шифры SSL. |
ssl-key= | Ключевой файл. |
timeout= | Аналогично connect-timeout. |
user | Пользователь по умолчанию. |
timeout был заменён на connect-timeout, но timeout всё ещё поддерживается для обратной совместимости.
Дополнительную информацию о файлах параметров, используемых программами 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","user","passwd","database",0,NULL,0))
{
fprintf(stderr, "Failed to connect to database: Error: %s\n",
mysql_error(&mysql));
}
© 2025 Oracle
Licensed under the GPLv2 License.