getSessionConnecte à un serveur MySQL
&reftitle.description;
mysql_xdevapi\Sessionmysql_xdevapi\getSessionstringuri
Connecte au serveur MySQL.
&reftitle.parameters;
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 connexionDans mysql_xdevapi c'est toujours 'mysqlx' (pour le protocole X)user: optionnel, le compte utilisateur MySQL pour l'authentificationpassword: optionnel, le mot de passe de l'utilisateur MySQL pour l'authentificationtarget: 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 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.
&reftitle.returnvalues;
Un objet Session.
&reftitle.errors;
Une erreur de connexion lance une exception Exception.
&reftitle.examples;
Exemple de mysql_xdevapi\getSession
getMessage());
}
$schemas = $session->getSchemas();
print_r($schemas);
$mysql_version = $session->getServerVersion();
print_r($mysql_version);
var_dump($collection->find("name = 'Alfred'")->execute()->fetchOne());
?>
]]>
&example.outputs.similar;
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"
}
]]>