(No version information available, might only be in Git)
getSession — Подключается к серверу MySQL
$uri
) : mysql_xdevapi\SessionПодключается к серверу MySQL.
uri
URI к серверу MySQL, такой как mysqlx://user:password@host.
Формат URI:
scheme://[user[:[password]]@]target[:port][?attribute1=value1&attribute2=value2...
scheme: обязательный, протокол соединения
В mysql_xdevapi это всегда 'mysqlx' (для X Protocol)
user: необязательный, учетная запись пользователя MySQL для аутентификации
password: необязательный, пароль пользователя MySQL для аутентификации
target: обязательный, экземпляр сервера, к которому относится соединение:
* TCP-соединение (имя хоста, адрес IPv4 или адрес IPv6)
* Путь к сокету Unix (локальный путь к файлу)
* Именованный канал Windows (локальный путь к файлу)
port: необязательный, сетевой порт сервера MySQL.
по умолчанию порт для X Protocol равен 33060
?attribute=value: этот элемент является необязательным и определяет словарь данных, который содержит различные параметры, в том числе:
Атрибут auth (механизм аутентификации), поскольку он относится к зашифрованным соединениям. Для получения дополнительной информации смотрите » Параметры команды для зашифрованных соединений. Поддерживаются следующие значения: plain, mysql41, external, и sha256_mem.
Атрибут connect-timeout влияет на соединение, а не на последующие операции. Он устанавливается для каждого соединения на одном или нескольких хостах.
Введите положительное целое число, чтобы определить время ожидания соединения в секундах, или введите 0 (ноль), чтобы отключить время ожидания (бесконечно). Не определяя время ожидания подключения, вы используется значение по умолчанию 10.
Связанные, переменные среды MYSQLX_CONNECTION_TIMEOUT (время ожидания в секундах) и MYSQLX_TEST_CONNECTION_TIMEOUT (используемые во время выполнения тестов) могут быть установлены и использованы вместо connect-timeout соединения в URI. Параметр URI подключения к connect-timeout имеет приоритет над переменными среды.
Пример #1 Примеры URI
mysqlx://foobar
mysqlx://root@localhost?socket=%2Ftmp%2Fmysqld.sock%2F
mysqlx://foo:bar@localhost:33060
mysqlx://foo:bar@localhost:33160?ssl-mode=disabled
mysqlx://foo:bar@localhost:33260?ssl-mode=required
mysqlx://foo:bar@localhost:33360?ssl-mode=required&auth=mysql41
mysqlx://foo:bar@(/path/to/socket)
mysqlx://foo:bar@(/path/to/socket)?auth=sha256_mem
mysqlx://foo:bar@[localhost:33060, 127.0.0.1:33061]
mysqlx://foobar?ssl-ca=(/path/to/ca.pem)&ssl-crl=(/path/to/crl.pem)
mysqlx://foo:bar@[localhost:33060, 127.0.0.1:33061]?ssl-mode=disabled
mysqlx://foo:bar@localhost:33160/?connect-timeout=0
mysqlx://foo:bar@localhost:33160/?connect-timeout=10
Для получения дополнительной информации смотрите MySQL Shell » Подключение с использованием строки URI.
Объект Session.
Ошибка соединения вызывает Exception.
Пример #2 Пример использования mysql_xdevapi\getSession()
<?php
try {
$session = mysql_xdevapi\getSession("mysqlx://user:password@host");
} catch(Exception $e) {
die("Не удалось установить соединение: " . $e->getMessage());
}
$schemas = $session->getSchemas();
print_r($schemas);
$mysql_version = $session->getServerVersion();
print_r($mysql_version);
var_dump($collection->find("name = 'Alfred'")->execute()->fetchOne());
?>
Результатом выполнения данного примера будет что-то подобное:
Array ( [0] => mysql_xdevapi\Schema Object ( [name] => helloworld ) [1] => mysql_xdevapi\Schema Object ( [name] => information_schema ) [2] => mysql_xdevapi\Schema Object ( [name] => mysql ) [3] => mysql_xdevapi\Schema Object ( [name] => performance_schema ) [4] => mysql_xdevapi\Schema Object ( [name] => sys ) ) 80012 array(4) { ["_id"]=> string(28) "00005ad66abf0001000400000003" ["age"]=> int(42) ["job"]=> string(7) "Butler" ["name"]=> string(4) "Alfred" }