mysql_options()


int mysql_options(MYSQL *mysql, enum mysql_option option, const char *arg)

Описание

Может использоваться для установки дополнительных опций соединения и влияет на режим работы соединения. Эта функция может вызываться многократно для установки нескольких опций.

Функция mysql_options() должна вызываться после функции mysql_init() и перед функцией mysql_connect() или mysql_real_connect().

Аргумент option представляет собой опцию, которую требуется установить; аргумент arg является величиной этой опции. Если данная опция является целым числом, то аргумент arg должен указывать на величину целого числа.

Возможные значения опций:

Опция Тип аргумента Функция
MYSQL_OPT_CONNECT_TIMEOUT unsigned int * Время ожидания для соединения в секундах.
MYSQL_OPT_COMPRESS Не используется Использовать сжатие в клиент-серверном протоколе.
MYSQL_OPT_LOCAL_INFILE Опциональный указатель на uint Если указатель не задан или указывает на unsigned int != 0 команда LOAD LOCAL INFILE разрешена.
MYSQL_OPT_NAMED_PIPE Не используется Использовать именованные каналы для соединения с сервером MySQL на NT.
MYSQL_INIT_COMMAND char * Команда для исполнения при подключении к серверу MySQL. При восстановлении соединения будет снова автоматически выполнена.
MYSQL_READ_DEFAULT_FILE char * Читать опции из указанного файла опций вместо чтения из файла my.cnf.
MYSQL_READ_DEFAULT_GROUP char * Читать опции из указанной группы из файла my.cnf или из файла заданного в MYSQL_READ_DEFAULT_FILE.

Следует помнить, что группа client читается всегда при использовании 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(). mysql_real_connect().
local-infile[=(0|1)] Если аргумент не задан или указан аргумент != 0, то разрешено использование LOAD DATA LOCAL.
max_allowed_packet Максимальный размер пакета, который клиент может читать с сервера.
password Пароль по умолчанию.
pipe Использовать именованные каналы для соединения с сервером MySQL на NT.
protocol=(TCP | SOCKET | PIPE | MEMORY) Какой протокол использовать для подключения к серверу (новшество 4.1.0).
port Номер порта по умолчанию.
return-found-rows Предписывает mysql_info() возвращать найденные строки вместо обновления их при выполнении UPDATE.
shared-memory-base-name=name Имя блока общей памяти (shared memory name), которое следует использовать для подключения к серверу (по умолчанию "MySQL"). Новшество в MySQL 4.1.
socket Номер сокета по умолчанию.
user Пользователь по умолчанию.

Следует помнить, что timeout замещен на connect-timeout, но timeout временно еще работает.

Для более подробной информации о файлах опций см. раздел Файлы параметров my.cnf.

Возвращаемые значения

Нуль при успешном выполнении. Величина, отличная от нуля, если используется неизвестная опция.

Пример

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));
}

Вышеприведенный пример запрашивает клиента использовать сжатый клиент-серверный протокол и читать дополнительные опции из секции odbc в файле my.cnf.

Навигация