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, если подключение неуспешно. При успешном подключении возвращаемое значение совпадает со значением первого аргумента.
Пример
В следующем примере используется имя записи 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.