• mysql跨库关联查询(dblink)


    dblink

    1、解决方案

    mysql是不支持跨库连接的,如果我们实在要连接的话可以用dblink方式
    在这里插入图片描述解释:

    • dblink就是我们在创建表的时候连接到我们的远程库,然后我们本地新建的表数据就是映射远程的表的数据
    • 当我们创建一个以FEDERATED为存储引擎的表时,服务器在数据库目录只创建一个表定义文件。文件由表的名字开始,并有一个frm扩展名。无其它文件被创建,因为实际的数据在一个远程数据库上。这不同于为本地表工作的存储引擎的方式。

    如我现在本地要连接我的阿里云的sys_user表
    在这里插入图片描述
    所以我需要在本地建一个相同字段的表,我取名叫sys_user_copy,并连接到远程库
    在这里插入图片描述
    建好后,我本地sys_user_copy的表里面的数据是映射远程的表的数据

    在这里插入图片描述所以我关联查询,可以直接关联我本地sys_user_copy表从而查出来。

    在这里插入图片描述
    改了本地的数据,远程的表数据也会跟着变
    在这里插入图片描述

    2、操作

    1、开启FEDERATED引擎
    show engines
    在这里插入图片描述如果这里是NO,需要在配置文件[mysqld]中加入一行:federated

    在这里插入图片描述
    改完重启服务,就变成yes了。

    2、建表时加上连接
    在这里插入图片描述

    CREATE TABLE (......) 
    ENGINE =FEDERATED CONNECTION='mysql://username:password@hostname:port/database/tablename'
    
    • 1
    • 2

    这样即可。

    3、缺点

    • 1、本地表结构必须与远程表完全一样
    • 2、不支持事务
    • 3、不支持表结构修改
    • 4、删除本地表,远程表不会删除
    • 5、远程服务器必须是一个MySQL服务器

    先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    威锋VL820是USB 3.1 2代集线器控制器
    真是性价比之王,腾讯云这款88元云服务器已经圈粉无数!
    687. 最长同值路径 ●●
    golang关于channel
    英语小三门
    springboot外委员工后台管理系统毕业设计源码101157
    ffmpeg 特效 转场 放大缩小
    Opencascade常用函数 更新中...
    Web前端系列技术之JavaScript进阶(从ES6开始)①
    报错的解决 sqlite3.OperationalError: unrecognized token: “630008.OF“
  • 原文地址:https://blog.csdn.net/m0_67401660/article/details/126113635