【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 ...
随机推荐
- 微信小程序跳转重新加载目标页
可用于在首次进入到小程序后就执行性了首页的onLoad方法,等你再去点击其它页面再回来的时候就不会加载onLoad了,比如你跳到登录页后再返回到首页会发现首页啥数据都没加载,所以你在登录那边进行跳转的 ...
- Visual Studio(VS)常用快捷键整理
前言 在使用Visual Studio编写代码时,使用快捷键能够提高编码效率,作为程序员,我们有必要记住一些比较常用的快捷键.这篇文章将记录我自己比较常用的快捷键,并根据我的使用情况,更新常用快捷 ...
- 3代 I3 3220 对比12代 G6900 测试 入手 上手 评测
3代 I3 3220 对比12代 G6900 测试 入手 上手 评测 I3 3220 的CPU-Z ,和cinebench r23 跑分. G6900 的CPU-Z ,和cinebench r23 跑 ...
- 搜狗五笔 date 自定义时间格式
搜狗五笔 date 自定义时间格式 搜狗五笔 date 默认打出的是"2023-6-15",如果需要"2023-06-15",则需要在自定义短语中设置 属性设置 ...
- 前端使用 Konva 实现可视化设计器(14)- 折线 - 最优路径应用【代码篇】
话接上回<前端使用 Konva 实现可视化设计器(13)- 折线 - 最优路径应用[思路篇]>,这一章继续说说相关的代码如何构思的,如何一步步构建数据模型可供 AStar 算法进行路径规划 ...
- springboot增加@EnableAsync注解,否则方法中的@Async注解没有生效
springboot增加@EnableAsync注解,否则方法中的@Async注解没有生效. @EnableFeignClients(basePackages = {"com.test&qu ...
- 开启IPV6网络
1.路由器开启IPV6支持 2.路由器关闭IPV6 DHCP服务 3.若外网无法访问则关闭路由器防火墙 或关闭系统防火墙 4.tomcat需设置地址为0.0.0.0
- STP选举规则
STP Election Process 802.1D STP 802.1D是第一个生成树版本,不支持VLAN.选举过程如下 选择一个根桥 选择根端口 选择指定端口 选择关闭端口(剩下的最后一个端 ...
- 设备树DTS 学习:学习总结(应用篇)
设备树DTS 学习:学习总结(应用篇) 背景 经过前几章的学习,我们可以说是掌握了设备树的基础用法,现在作为总结回顾. 1.设备树DTS 学习:有关概念 介绍了什么是设备树,设备树的作用,如何编译设备 ...
- 3562-IgH EtherCAT主站开发案例