getSession
(No version information available, might only be in Git)
getSession — Подключается к серверу MySQL
Описание
Подключается к серверу 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 имеет приоритет над переменными среды.
-
Необязательный атрибут
compression
принимает следующие значения:preferred
(клиент договаривается с сервером, чтобы найти поддерживаемый алгоритм; соединение не сжато, если взаимно поддерживаемый алгоритм не найден),required
(как "preferred", но соединение разрывается, если взаимно поддерживаемый алгоритм не найден), илиdisabled
(соединение несжато). По умолчанию используетсяpreferred
.Опция была добавлена в версии 8.0.20.
-
Необязательный атрибут
compression-algorithms
определяет желаемые алгоритмы сжатия (и их предпочтительный порядок использования):zstd_stream
(псевдоним: zstd),lz4_message
(псевдоним: lz4) илиdeflate_stream
(псевдонимы: deflate или zlib). По умолчанию используется порядок (в зависимости от доступности системы): lz4_message, zstd_stream, затем deflate_stream. Например, при передаче compression-algorithms=[lz4, zstd_stream] используется lz4, если он доступен, в противном случае используется zstd_stream. Если оба недоступны, поведение зависит от значения сжатия, например, если compression=required, то произойдет сбой с ошибкой.Опция была добавлена в версии 8.0.22.
-
Пример #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&compression=required
mysqlx://foo:bar@localhost:33160/?connect-timeout=10&compression=required&compression-algorithms=[lz4,zstd_stream]Для получения дополнительной информации смотрите 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" }