getSession

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

getSession — Connecte à un serveur MySQL

Description

function mysql_xdevapi\getSession(string $uri): mysql_xdevapi\Session

Connecte au serveur MySQL.

Liste de paramĂštres

uri

L'uri du serveur MySQL, tel que mysqlx://user:password@host.

Format d'URI:

scheme://[user[:[password]]@]target[:port][?attribute1=value1&attribute2=value2...

  • scheme: requis, le protocole de connexion

    Dans mysql_xdevapi c'est toujours 'mysqlx' (pour le protocole X)

  • user: optionnel, le compte utilisateur MySQL pour l'authentification

  • password: optionnel, le mot de passe de l'utilisateur MySQL pour l'authentification

  • target: requis, l'instance serveur Ă  laquelle la connexion se rĂ©fĂšre:

    * Connexion TCP (nom d'hĂŽte, adresse IPv4 ou adresse IPv6)

    * Chemin de socket Unix (chemin de fichier local)

    * Pipe nommé Windows (chemin de fichier local)

  • port: optionnel, le port rĂ©seau du serveur MySQL.

    par défaut le port pour le protocole X est 33060

  • ?attribute=value: cet Ă©lĂ©ment est optionnel et spĂ©cifie un dictionnaire de donnĂ©es qui contient diffĂ©rentes options, y compris:

    • L'auth (mĂ©canisme d'authentification) attribut tel qu'il se rapporte aux connexions chiffrĂ©es. Pour plus d'informations, voir » Options de commande pour les connexions chiffrĂ©es. Les valeurs 'auth' suivantes sont supportĂ©es: plain, mysql41, external, et sha256_mem.

    • L'attribut connect-timeout affecte la connexion et non les opĂ©rations suivantes. Il est dĂ©fini par connexion, que ce soit sur un seul hĂŽte ou plusieurs.

      Passer un entier positif pour définir le délai de connexion en secondes, ou passer 0 (zéro) pour désactiver le délai (infini). Ne pas définir connect-timeout utilise la valeur par défaut de 10.

      En relation, les variables d'environnement MYSQLX_CONNECTION_TIMEOUT (dĂ©lai en secondes) et MYSQLX_TEST_CONNECTION_TIMEOUT (utilisĂ© lors de l'exĂ©cution des tests) peuvent ĂȘtre dĂ©finies et utilisĂ©es Ă  la place de connect-timeout dans l'URI. L'option connect-timeout de l'URI a la prioritĂ© sur ces variables d'environnement.

    • L'attribut optionnel compression accepte ces valeurs: preferred (le client nĂ©gocie avec le serveur pour trouver un algorithme supportĂ©; la connexion est non compressĂ©e si un algorithme supportĂ© mutuellement n'est pas trouvĂ©), required (comme "preferred", mais la connexion est terminĂ©e si un algorithme supportĂ© mutuellement n'est pas trouvĂ©), ou disabled (la connexion est non compressĂ©e). Par dĂ©faut Ă  preferred.

      Cette option a été ajoutée dans la version 8.0.20.

    • L'attribut optionnel compression-algorithms dĂ©finit les algorithmes de compression dĂ©sirĂ©s (et leur ordre d'utilisation prĂ©fĂ©rĂ©): zstd_stream (alias: zstd), lz4_message (alias: lz4), ou deflate_stream (alias: deflate ou zlib). Par dĂ©faut, l'ordre utilisĂ© (selon la disponibilitĂ© du systĂšme) est lz4_message, zstd_stream, puis deflate_stream. Par exemple, passer compression-algorithms=[lz4,zstd_stream] utilise lz4 s'il est disponible, sinon zstd_stream est utilisĂ©. Si les deux ne sont pas disponibles alors le comportement dĂ©pend de la valeur de compression par exemple, si compression=required alors il Ă©chouera avec une erreur.

      Cette option a été ajoutée dans la version 8.0.22.

Exemple #1 Exemple d'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]

Pour plus d'informations, voir connexion à MySQL Shell » en utilisant une chaßne d'URI.

Valeurs de retour

Un objet Session.

Erreurs / Exceptions

Une erreur de connexion lance une exception Exception.

Exemples

Exemple #2 Exemple de mysql_xdevapi\getSession()

<?php
try {
$session = mysql_xdevapi\getSession("mysqlx://user:password@host");
} catch(
Exception $e) {
die(
"Connection could not be established: " . $e->getMessage());
}

$schemas = $session->getSchemas();
print_r($schemas);

$mysql_version = $session->getServerVersion();
print_r($mysql_version);

var_dump($collection->find("name = 'Alfred'")->execute()->fetchOne());
?>

Résultat de l'exemple ci-dessus est similaire à :

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"
}
add a note

User Contributed Notes

There are no user contributed notes for this page.