【MySQL】DB-Link 跨库访问
相关说明:
https://blog.csdn.net/qq_48721706/article/details/124088963
DB-LINK以一个远程访问方式访问其他MYSQL实例
连接实例和被连接实例都需要开启FEDERATED引擎
Federated引擎配置
检查库是否支持FEDERATED
SHOW ENGINES;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
检查是否安装了FEDERATED插件
INSTALL PLUGIN federated SONAME 'ha_federated.so';
1125 - Function 'federated' already exists
如果没有,打开MYSQL配置文件【my.ini】或者【my.cnf】配置FEDERATED参数
然后重启MYSQL服务
[mysqld]
# mysql所在的目录
basedir=D:\mysql-8.0.28-winx64\ # mysql 数据库存储的目录
datadir=D:\mysql-8.0.28-winx64\data\ # mysql服务端默认使用的字符集
character-set-server=utf8 # 默认使用的存储引擎
default-storage-engine=INNODB # mysql服务端的端口号
port=3308 # 支持其它MYSQL以DBLINK方式访问本实例
federated # 关闭SSL认证
skip_ssl [mysql]
# mysql客户端默认使用的字符集
default-character-set=utf8
再次检查是否开启
SHOW ENGINES;
+--------------------+---------+----------------------------------------------------------------+--------------+-----+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+-----+------------+
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| FEDERATED | YES | Federated MySQL storage engine | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
+--------------------+---------+----------------------------------------------------------------+--------------+-----+------------+
DBLINK访问测试:
在A库创建一张测试表以及数据:
CREATE TABLE `grade` (
`id` int NOT NULL,
`job` varchar(32) COLLATE utf8mb4_general_ci NOT NULL,
`score` int NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; INSERT INTO `test`.`db-link-grade`(`id`, `job`, `score`) VALUES (1, 'C++', 11001);
INSERT INTO `test`.`db-link-grade`(`id`, `job`, `score`) VALUES (2, 'C++', 10000);
INSERT INTO `test`.`db-link-grade`(`id`, `job`, `score`) VALUES (3, 'C++', 9000);
INSERT INTO `test`.`db-link-grade`(`id`, `job`, `score`) VALUES (4, 'Java', 12000);
INSERT INTO `test`.`db-link-grade`(`id`, `job`, `score`) VALUES (5, 'Java', 13000);
INSERT INTO `test`.`db-link-grade`(`id`, `job`, `score`) VALUES (6, 'B', 12000);
INSERT INTO `test`.`db-link-grade`(`id`, `job`, `score`) VALUES (7, 'B', 11000);
INSERT INTO `test`.`db-link-grade`(`id`, `job`, `score`) VALUES (8, 'B', 9999);
INSERT INTO `test`.`db-link-grade`(`id`, `job`, `score`) VALUES (9, 'C', 22344);
创建完成之后,在B库创建LINK表:
CREATE TABLE `db-link-grade` (
`id` int(11) NOT NULL,
`job` varchar(32) NOT NULL,
`score` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=FEDERATED DEFAULT CHARSET=utf8mb4 CONNECTION='mysql://root:123456@localhost:3308/nowcoder-sql/grade'; -- 指定表引擎为Federated
ENGINE=FEDERATED -- 连接的目标表
CONNECTION='mysql://用户名:密码@目标Host:端口/库名/表名';
查询LINK表检查是否能成功访问:
SELECT * FROM `db-link-grade`;
+----+------+-------+
| id | job | score |
+----+------+-------+
| 1 | C++ | 11001 |
| 2 | C++ | 10000 |
| 3 | C++ | 9000 |
| 4 | Java | 12000 |
| 5 | Java | 13000 |
| 6 | B | 12000 |
| 7 | B | 11000 |
| 8 | B | 9999 |
| 9 | C | 22344 |
+----+------+-------+
【MySQL】DB-Link 跨库访问的更多相关文章
- postgresql 模式与用户,及跨库访问
1 控制台命令\h:查看SQL命令的解释,比如\h select.\?:查看psql命令列表.\l:列出所有数据库.\c [database_name]:连接其他数据库.\d:列出当前数据库的所有表格 ...
- Postgresql ODBC驱动,用sqlserver添加dblink跨库访问postgresql数据库
在同样是SQLserver数据库跨库访问时,只需要以下方法 declare @rowcount int set @rowcount =(select COUNT(*) from sys.servers ...
- DB分布式 跨库分页
DB分布式-两种方式 1. JDBC扩展 sharding-jdbc: 直接封装JDBC,代码迁移成本低,适用于任何连接池及ORM框架,JAR包提供服务,未使用中间层,不用额外部署,DBA无需 ...
- 2020-07-07:mysql如何实现跨库join查询?
福哥答案2020-07-07: 1.同服务跨库.表名称带上库名.SELECT * FROM 数据库名称1.表名称 JOIN 数据库名称2.表名称 ON 数据库名称1.表名称.tid = 数据库名称2. ...
- 重大发现Discuz DB层跨库映射关系表名前缀BUG
本文更新:http://www.cnblogs.com/x3d/p/3916198.html 场景: 在Discuz中创建Table模型,但该Table所在库与Discuz不在同一个库. Discuz ...
- SqlServer 跨库访问
同实例跨库 只需要 库名.dbo.表 dbo可省略 如: use Test select * from rdrecords select * from oa.dbo.UserInfo 不同实例与不同i ...
- Discuz DB层跨库映射关系表名前缀BUG修复后产生的新bug
新的逻辑引入了新的bug,会导致在跨多库连接时,产生表名前缀映射混乱,需要再做逻辑上的修复. function table_name($tablename) { if(!empty($this-> ...
- Oracle跨库访问数据表-DBLINK
1:创建DBLINK(USING后面的连接字符串就是要访问的那个数据库的连接字符串) CREATE DATABASE LINK linkName CONNECT TO userName IDENTIF ...
- oracle在进行跨库访问时,采用dblink实现
首先了解下环境:在tnsnames.ora中配置两个数据库别名:test1/test1@11orcl1.tets2/tets2@12orlc2,在orcl1中创建database link来访问orc ...
- oracle 跨库访问
创建DBLINK的方法: 1. create public database link dblink connect to totalplant identified by totalplant us ...
随机推荐
- python的一些常用编码技巧(持续更新)
语法问题 我常用的库函数 1 copy库 import copy copy.deepcopy() 2.list库 from typing import List 获取迭代对象的第一个值 方法一:使用l ...
- C# .NET HttpWebRequest 按每个(单个)请求跳过证书校验
C# .NET HttpWebRequest 按每个(单个)请求跳过证书校验 自签名证书 HTTPS TLS . 使用.NET 4.5 新加的属性 HttpWebRequest.ServerCerti ...
- python-API开发zk客户端
前面于超老师讲完了,zk运维的基本命令行玩法,更多的还是开发需要通过代码和zk结合处理. 大多数场景是java后端去操作. 这里我们以运维更友好的python来学习. 1.kazoo模块 zookee ...
- redis高可用哨兵篇
https://redis.io/docs/manual/sentinel/#sentinels-and-replicas-auto-discovery 官网资料 在上文主从复制的基础上,如果注节点出 ...
- typescript class属性定义的先后问题
example e.g. 1 e.g. 2 e.g. 3 解释 在 typescript 中 定义一个 class class 的 constructor 里面的语句在转义成 JavaScript 之 ...
- AI赋能ITSM:企业运维跃迁之路
随着企业信息化建设的深入,IT运维管理作为保证企业信息系统稳定运行的重要工作,越来越受到重视. 那么,什么是IT运维呢? 简单地说,IT运维是一系列维护.管理和优化企业IT基础设施.系统和应用程序的活 ...
- Gradle查看依赖及排除依赖的方法
查看项目的编译依赖,同时写入文件aa.txt F:\sts4\order-test>gradlew :order-test-api:dependencies --configuration co ...
- SoftReference 到底在什么时候被回收 ? 如何量化内存不足 ?
本文基于 OpenJDK17 进行讨论,垃圾回收器为 ZGC. 提示: 为了方便大家索引,特将在上篇文章 <以 ZGC 为例,谈一谈 JVM 是如何实现 Reference 语义的> 中讨 ...
- MySQL Explain 关键字详解
概述 explain 关键字可以模拟执行 sql 查询语句,输出执行计划,分析查询语句的执行性能 使用方式如下:explain + sql explain select * from t1 执行计划各 ...
- 安装Ingress-Nginx
目前,DHorse(https://gitee.com/i512team/dhorse)只支持Ingress-nginx的Ingress实现,下面介绍Ingress-nginx的安装过程. 下载安装文 ...