Maison > base de données > tutoriel mysql > Comment puis-je effectuer des requêtes MySQL SELECT inter-serveurs à l'aide de tables fédérées et de tunnels SSH ?

Comment puis-je effectuer des requêtes MySQL SELECT inter-serveurs à l'aide de tables fédérées et de tunnels SSH ?

Patricia Arquette
Libérer: 2024-12-01 13:31:12
original
730 Les gens l'ont consulté

How Can I Perform Cross-Server MySQL SELECT Queries Using Federated Tables and SSH Tunnels?

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 :

  1. Établir un tunnel SSH pour connecter les deux serveurs.
  2. Définir une table sur le serveur distant.
  3. Créer un serveur fédéré table sur le serveur local qui pointe vers la table distante. Utilisez la syntaxe suivante :
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';
Copier après la connexion
  1. Une fois la table fédérée créée, vous pouvez l'interroger comme s'il s'agissait d'une table locale. La table fédérée gérera de manière transparente la communication avec le serveur distant.

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';
Copier après la connexion

Une fois la table fédérée créée, vous pouvez l'interroger comme suit :

SELECT * FROM federated_table;
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal