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"
}