Requête de sélection inter-serveurs MySQL via le tunnel SSH et les tables fédérées
Pour effectuer une requête de sélection inter-serveurs à l'aide de MySQL, une approche courante consiste à créer des tables fédérées sur l'un des serveurs. En créant des tables fédérées basées sur les tables distantes, vous pouvez interroger les données comme si elles étaient toutes situées localement.
Étapes :
CREATE TABLE federated_table ( id INT(20) NOT NULL AUTO_INCREMENT, name VARCHAR(32) NOT NULL DEFAULT '', other INT(20) NOT NULL DEFAULT '0', PRIMARY KEY (id), INDEX name (name), INDEX other_key (other) ) ENGINE=FEDERATED DEFAULT CHARSET=latin1 CONNECTION='mysql://fed_user@remote_host:9306/federated/test_table';
Exemple :
Considérez la configuration suivante :
Server IP | Database |
---|---|
1.2.3.4 | Test |
a.b.c.d | Test |
Vous pouvez créer une table fédérée sur le serveur 1.2.3.4 pour accéder à une table sur le serveur a.b.c.d en utilisant ce qui suit requête :
CREATE TABLE federated_table ( id INT(20) NOT NULL AUTO_INCREMENT, name VARCHAR(32) NOT NULL DEFAULT '', other INT(20) NOT NULL DEFAULT '0', PRIMARY KEY (id), INDEX name (name), INDEX other_key (other) ) ENGINE=FEDERATED DEFAULT CHARSET=latin1 CONNECTION='mysql://fed_user@a.b.c.d:9306/Test/test_table';
Une fois la table fédérée créée, vous pouvez l'interroger comme suit :
SELECT * FROM federated_table;
Cette requête récupérera les lignes de la table test_table sur le serveur a.b.c.d.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!