requête conjointe (deux bibliothèques différentes, la bibliothèque myemployees et la bibliothèque shoppingCart). Ces deux bibliothèques sont sur le même hôte physique, toutes deux sur ma machine locale.
#联合查询(不同的2个库,myemployees库和shoppingCart库) SELECT emp01.`employee_id`, emp01.`first_name` FROM myemployees.employees AS emp01 LIMIT 0, 5 UNION SELECT emp02.`employee_id`, emp02.`first_name` FROM shoppingCart.`employees2` AS emp02; # SELECT emp01.`employee_id`, emp01.`first_name` FROM myemployees.employees AS emp01 LIMIT 0, 5 UNION ALL SELECT emp02.`employee_id`, emp02.`first_name` FROM shoppingCart.`employees2` AS emp02;
Afin de démontrer l'effet, j'utilise ma machine virtuelle ici, et le Le système Linux est installé sur ma machine virtuelle (centos), la base de données MySql a été installée sur le système Linux, le service de base de données MySql a été démarré et tous les environnements ont été complétés.
L'IP de mon système Linux (centos) est 192.168.117.66. Je prévois d'effectuer une requête conjointe entre ma table d'auteur local et la table d'utilisateur distant.
Après avoir tapé SHOW CREATE TABLE `user` sous Linux et obtenu le résultat, nous avons copié
CREATE TABLE IF NOT EXISTS `user` ( `id` INT(11) DEFAULT NULL, `name` VARCHAR(20) DEFAULT NULL )
ajouté
ENGINE =FEDERATED CONNECTION='mysql://root:root@192.168.117.66:3306/testDB/user';这句话。
CREATE TABLE IF NOT EXISTS `user` ( `id` INT(11) DEFAULT NULL, `name` VARCHAR(20) DEFAULT NULL )ENGINE =FEDERATED CONNECTION='mysql://root:root@192.168.117.66:3306/testDB/user';
En fait, ce qui précède La déclaration, pour le dire franchement, consiste à créer un raccourci de connexion à une base de données distante (raccourci de connexion à une base de données distante) dans ma base de données locale. À quoi est-il similaire ? C'est similaire au raccourci sur le bureau de notre système d'exploitation de fenêtre. Nous pouvons ouvrir une icône de logiciel en double-cliquant sur le bureau. C'est le même principe.
Exécutez simplement l'instruction ci-dessus.
Au fait, il y a encore une chose à noter :
Vous devez vérifier si le moteur FÉDÉRÉ
de votre base de données MySQL locale est activé.SHOW ENGINES;
Modifiez le fichier de configuration de la base de données mysql locale et ajoutez
federated à la fin du fichier de configuration, comme indiqué ci-dessous :
Si vous êtes sur un système Windows, modifiez le fichiermy.ini, si vous utilisez Linux pour le système, modifiez le fichier my.cnf
.N'oubliez pas de redémarrer le service mysql après avoir modifié le fichier de configuration. Linux redémarre le service mysql, service mysqld restart
.
Redémarrez le service mysql dans Windows. Dans la fenêtre dos, entrez le nom du service mysql net stop, puis entrez le nom du service mysql net start. OK, une fois que tout est fait, exécutez l'instruction SQL suivante pour voir les résultats de la requête inter-bases de données.
# SELECT id, aname FROM author UNION SELECT id, `name` FROM `user`;
SELECT * FROM author INNER JOIN `user`;
Pour la requête inter-serveurs et inter-bases de données ci-dessus, vous devez faire attention aux points suivants :
1 Cette méthode de requête inter-bases de données ne prend pas en charge les transactions, donc. il est préférable de ne pas utiliser de transactions.
2. La structure du tableau ne peut pas être modifiée. 3.MySQL utilise cette méthode de requête inter-bases de données. La base de données distante ne prend actuellement en charge que MySQL et les autres bases de données ne le prennent pas en charge.
4. La structure de la table doit être totalement cohérente avec la table de la base de données cible.
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!