Spec-Zone.ru › MySQL Connectors 1.0

5.4.59 mysql_real_connect_dns_srv()

MYSQL *
mysql_real_connect_dns_srv(MYSQL *mysql,
                           const char *dns_srv_name,
                           const char *user,
                           const char *passwd,
                           const char *db,
                           unsigned long client_flag)

Описание

Примечание

mysql_real_connect_dns_srv() — это синхронная функция. В отличие от mysql_real_connect(), у неё нет асинхронного аналога.

mysql_real_connect_dns_srv() похожа на mysql_real_connect(), за исключением того, что список аргументов не указывает конкретный хост сервера MySQL для подключения. Вместо этого он называет запись DNS SRV, которая определяет группу серверов. Дополнительную информацию о поддержке DNS SRV в MySQL см. в .

Аргумент dns_srv_name для mysql_real_connect_dns_srv() заменяет аргументы host, port и unix_socket для mysql_real_connect(). Аргумент dns_srv_name указывает на запись DNS SRV, определяющую кандидатские хосты для подключения к серверу MySQL.

Аргументы mysql, user, passwd, db и client_flag для mysql_real_connect_dns_srv() имеют те же значения, что и для mysql_real_connect(). Для описания их значений см. Раздел 5.4.58, «mysql_real_connect()».

Предположим, что DNS настроен со следующей информацией SRV для домена example.com:

Name                     TTL   Class   Priority Weight Port Target
_mysql._tcp.example.com. 86400 IN SRV  0        5      3306 host1.example.com
_mysql._tcp.example.com. 86400 IN SRV  0        10     3306 host2.example.com
_mysql._tcp.example.com. 86400 IN SRV  10       5      3306 host3.example.com
_mysql._tcp.example.com. 86400 IN SRV  20       5      3306 host4.example.com

Для использования этой записи DNS SRV, передайте "_mysql._tcp.example.com" в качестве аргумента dns_srv_name для mysql_real_connect_dns_srv(), которая затем пытается подключиться к каждому серверу в группе до успешного подключения. Подключение не удастся только в том случае, если подключение невозможно установить ни к одному из серверов. Значения приоритета и веса в записи DNS SRV определяют порядок, в котором следует пытаться подключиться к серверам.

mysql_real_connect_dns_srv() пытается установить только TCP-соединения.

Библиотека клиента выполняет поиск DNS SRV для каждого вызова mysql_real_connect_dns_srv(). Библиотека клиента не кэширует результаты поиска.

Значения возврата

Диспетчер соединения MYSQL*, если подключение успешно, NULL, если подключение неуспешно. При успешном подключении возвращаемое значение совпадает со значением первого аргумента.

Ошибки

Те же, что и у mysql_real_connect(), плюс:

  • Не удалось выполнить поиск DNS SRV.

Пример

В следующем примере используется имя записи DNS SRV, показанной ранее, как источник кандидатных серверов для подключения.

MYSQL mysql;
const char *dns_srv_name = "_mysql._tcp.example.com";

mysql_init(&mysql);
if (!mysql_real_connect_dns_srv(&mysql,dns_srv_name,"user","passwd","database",0))
{
    fprintf(stderr, "Failed to connect to database: Error: %s\n",
          mysql_error(&mysql));
}

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/c-api-8.0-en/mysql-real-connect-dns-srv.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API