使用FREDATED引擎实现跨实例访问
跨数据库服务器,跨实例访问是比较常见的一种访问方式,在Oracle中可以通过DB LINK的方式来实现。对于MySQL而言,有一个FEDERATED存储引擎与之相对应。同样也是通过创建一个链接方式的形式来访问远程服务器上的数据。本文简要描述了FEDERATED存储引擎,以及
跨数据库服务器,跨实例访问是比较常见的一种访问方式,在Oracle中可以通过DB LINK的方式来实现。对于MySQL而言,有一个FEDERATED存储引擎与之相对应。同样也是通过创建一个链接方式的形式来访问远程服务器上的数据。本文简要描述了FEDERATED存储引擎,以及演示了基于FEDERATED存储引擎跨实例访问的示例。
1、FEDERATED存储引擎的描述
2、安装与启用FEDERATED存储引擎
3、准备远程服务器环境
-- 此演示中远程服务器与本地服务器为同一服务器上的多版本多实例 -- 假定远程服务为:5.6.12(实例3406) -- 假定本地服务器:5.6.21(实例3306) -- 基于实例3306创建FEDERATED存储引擎表test.federated_engine以到达访问实例3406数据库tempdb.tb_engine的目的 [root@rhel64a ~]# cat /etc/issue Red Hat Enterprise Linux Server release 6.4 (Santiago) --启动3406的实例 [root@rhel64a ~]# /u01/app/mysql/bin/mysqld_multi start 3406 [root@rhel64a ~]# mysql -uroot -pxxx -P3406 --protocol=tcp root@localhost[(none)]> show variables like 'server_id'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | server_id | 3406 | +---------------+-------+ --实例3406的版本号 root@localhost[tempdb]> show variables like 'version'; +---------------+------------+ | Variable_name | Value | +---------------+------------+ | version | 5.6.12-log | +---------------+------------+ --创建数据库 root@localhost[(none)]> create database tempdb; Query OK, 1 row affected (0.00 sec) -- Author : Leshami -- Blog :http://blog.csdn.net/leshami root@localhost[(none)]> use tempdb Database changed --创建用于访问的表 root@localhost[tempdb]> create table tb_engine as -> select engine,support,comment from information_schema.engines; Query OK, 9 rows affected (0.10 sec) Records: 9 Duplicates: 0 Warnings: 0 --提取表的SQL语句用于创建为FEDERATED存储引擎表 root@localhost[tempdb]> show create table tb_engine \G *************************** 1. row *************************** Table: tb_engine Create Table: CREATE TABLE `tb_engine` ( `engine` varchar(64) NOT NULL DEFAULT '', `support` varchar(8) NOT NULL DEFAULT '', `comment` varchar(80) NOT NULL DEFAULT '' ) ENGINE=InnoDB DEFAULT CHARSET=utf8 --创建用于远程访问的账户 root@localhost[tempdb]> grant all privileges on tempdb.* to 'remote_user'@'192.168.1.131' identified by 'xxx'; Query OK, 0 rows affected (0.00 sec) root@localhost[tempdb]> flush privileges; Query OK, 0 rows affected (0.00 sec)
4、演示FEDERATED存储引擎跨实例访问
[root@rhel64a ~]# mysql -uroot -pxxx root@localhost[(none)]> show variables like 'version'; +---------------+--------+ | Variable_name | Value | +---------------+--------+ | version | 5.6.21 | +---------------+--------+ #查看是否支持FEDERATED引擎 root@localhost[(none)]> select * from information_schema.engines where engine='federated'; +-----------+---------+--------------------------------+--------------+------+------------+ | ENGINE | SUPPORT | COMMENT | TRANSACTIONS | XA | SAVEPOINTS | +-----------+---------+--------------------------------+--------------+------+------------+ | FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL | +-----------+---------+--------------------------------+--------------+------+------------+ root@localhost[(none)]> exit [root@rhel64a ~]# service mysql stop Shutting down MySQL..[ OK ] #配置启用FEDERATED引擎 [root@rhel64a ~]# vi /etc/my.cnf [root@rhel64a ~]# tail -7 /etc/my.cnf [mysqld] socket = /tmp/mysql3306.sock port = 3306 pid-file = /var/lib/mysql/my3306.pid user = mysql server-id=3306/ federated #添加该选项 [root@rhel64a ~]# service mysql start Starting MySQL.[ OK ] [root@rhel64a ~]# mysql -uroot -pxxx root@localhost[(none)]> select * from information_schema.engines where engine='federated'; +-----------+---------+--------------------------------+--------------+------+------------+ | ENGINE | SUPPORT | COMMENT | TRANSACTIONS | XA | SAVEPOINTS | +-----------+---------+--------------------------------+--------------+------+------------+ | FEDERATED | YES | Federated MySQL storage engine | NO | NO | NO | +-----------+---------+--------------------------------+--------------+------+------------+ root@localhost[(none)]> use test -- 创建基于FEDERATED引擎的表federated_engine root@localhost[test]> CREATE TABLE `federated_engine` ( -> `engine` varchar(64) NOT NULL DEFAULT '', -> `support` varchar(8) NOT NULL DEFAULT '', -> `comment` varchar(80) NOT NULL DEFAULT '' -> ) ENGINE=FEDERATED DEFAULT CHARSET=utf8 -> CONNECTION='mysql://remote_user:xxx@192.168.1.131:3406/tempdb/tb_engine'; Query OK, 0 rows affected (0.00 sec) -- 下面是创建后表格式文件 root@localhost[test]> system ls -hltr /var/lib/mysql/test total 12K -rw-rw---- 1 mysql mysql 8.5K Oct 24 08:22 federated_engine.frm --查询表federated_engine root@localhost[test]> select * from federated_engine limit 2; +------------+---------+---------------------------------------+ | engine | support | comment | +------------+---------+---------------------------------------+ | MRG_MYISAM | YES | Collection of identical MyISAM tables | | CSV | YES | CSV storage engine | +------------+---------+---------------------------------------+ --更新表federated_engine root@localhost[test]> update federated_engine set support='NO' where engine='CSV'; Query OK, 1 row affected (0.03 sec) Rows matched: 1 Changed: 1 Warnings: 0 --查看更新后的结果 root@localhost[test]> select * from federated_engine where engine='CSV'; +--------+---------+--------------------+ | engine | support | comment | +--------+---------+--------------------+ | CSV | NO | CSV storage engine | +--------+---------+--------------------+
5、创建FEDERATED引擎表的链接方式
scheme: A recognized connection protocol. Only mysql is supported as the scheme value at this point.
链接示例样本:
6、涉及到的相关参考

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds











Les dernières versions d'Apple des systèmes iOS18, iPadOS18 et macOS Sequoia ont ajouté une fonctionnalité importante à l'application Photos, conçue pour aider les utilisateurs à récupérer facilement des photos et des vidéos perdues ou endommagées pour diverses raisons. La nouvelle fonctionnalité introduit un album appelé "Récupéré" dans la section Outils de l'application Photos qui apparaîtra automatiquement lorsqu'un utilisateur a des photos ou des vidéos sur son appareil qui ne font pas partie de sa photothèque. L'émergence de l'album « Récupéré » offre une solution aux photos et vidéos perdues en raison d'une corruption de la base de données, d'une application d'appareil photo qui n'enregistre pas correctement dans la photothèque ou d'une application tierce gérant la photothèque. Les utilisateurs n'ont besoin que de quelques étapes simples

Comment utiliser MySQLi pour établir une connexion à une base de données en PHP : Inclure l'extension MySQLi (require_once) Créer une fonction de connexion (functionconnect_to_db) Appeler la fonction de connexion ($conn=connect_to_db()) Exécuter une requête ($result=$conn->query()) Fermer connexion ( $conn->close())

Pour gérer les erreurs de connexion à la base de données en PHP, vous pouvez utiliser les étapes suivantes : Utilisez mysqli_connect_errno() pour obtenir le code d'erreur. Utilisez mysqli_connect_error() pour obtenir le message d'erreur. En capturant et en enregistrant ces messages d'erreur, les problèmes de connexion à la base de données peuvent être facilement identifiés et résolus, garantissant ainsi le bon fonctionnement de votre application.

BitgetLaunchpool est une plateforme dynamique conçue pour tous les passionnés de cryptomonnaie. BitgetLaunchpool se démarque par son produit unique. Ici, vous pouvez miser vos jetons pour débloquer plus de récompenses, notamment des parachutages, des rendements élevés et une généreuse cagnotte exclusive aux premiers participants. Qu’est-ce que BitgetLaunchpool ? BitgetLaunchpool est une plate-forme de crypto-monnaie où les jetons peuvent être mis en jeu et gagnés selon des termes et conditions conviviaux. En investissant du BGB ou d'autres jetons dans Launchpool, les utilisateurs ont la possibilité de recevoir des airdrops gratuits, des gains et de participer à de généreux pools de bonus. Les revenus des actifs gagés sont calculés en T+1 heures, et les récompenses sont basées sur

L'utilisation de la fonction de rappel de base de données dans Golang peut permettre : d'exécuter du code personnalisé une fois l'opération de base de données spécifiée terminée. Ajoutez un comportement personnalisé via des fonctions distinctes sans écrire de code supplémentaire. Des fonctions de rappel sont disponibles pour les opérations d'insertion, de mise à jour, de suppression et de requête. Vous devez utiliser la fonction sql.Exec, sql.QueryRow ou sql.Query pour utiliser la fonction de rappel.

Les données JSON peuvent être enregistrées dans une base de données MySQL à l'aide de la bibliothèque gjson ou de la fonction json.Unmarshal. La bibliothèque gjson fournit des méthodes pratiques pour analyser les champs JSON, et la fonction json.Unmarshal nécessite un pointeur de type cible pour désorganiser les données JSON. Les deux méthodes nécessitent la préparation d'instructions SQL et l'exécution d'opérations d'insertion pour conserver les données dans la base de données.

Grâce au package base de données/sql de la bibliothèque standard Go, vous pouvez vous connecter à des bases de données distantes telles que MySQL, PostgreSQL ou SQLite : créez une chaîne de connexion contenant les informations de connexion à la base de données. Utilisez la fonction sql.Open() pour ouvrir une connexion à la base de données. Effectuez des opérations de base de données telles que des requêtes SQL et des opérations d'insertion. Utilisez defer pour fermer la connexion à la base de données afin de libérer des ressources.

Utilisez la bibliothèque DataAccessObjects (DAO) en C++ pour connecter et exploiter la base de données, notamment en établissant des connexions à la base de données, en exécutant des requêtes SQL, en insérant de nouveaux enregistrements et en mettant à jour les enregistrements existants. Les étapes spécifiques sont : 1. Inclure les instructions de bibliothèque nécessaires ; 2. Ouvrir le fichier de base de données ; 3. Créer un objet Recordset pour exécuter des requêtes SQL ou manipuler des données ; 4. Parcourez les résultats ou mettez à jour les enregistrements en fonction de besoins spécifiques.
