getSession

(No version information available, might only be in Git)

getSessionПодключается к серверу MySQL

Описание

mysql_xdevapi\getSession ( string $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 имеет приоритет над переменными среды.

    • Необязательный атрибут 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"
}