首页 > 数据库 >【MySQL】Federated引擎与Federated Server访问远程数据

【MySQL】Federated引擎与Federated Server访问远程数据

时间:2022-11-30 23:31:08浏览次数:41  
标签:数据库 MySQL Federated Server 引擎 mysql

文中使用的MySQL版本为5.6。

之前我们有讲过在Oracle数据库中关于远程数据库的访问可以使用DBLinked来实现,那在MySQL中是否也存在类似的方式呢?

答案是肯定的,在MySQL中若想访问远程数据库可以通过开启Federated引擎+映射表实现。

1. 开启Federated引擎

首先了解一下如何开启Federated引擎。由于默认情况下Federated引擎是关闭的状态,那我们先看看当前数据库是否支持Federated引擎。​

show engines;

如上图所示,当前数据库是支持Federated引擎的,但是没有开启。那么接下来通过修改配置文件来开启Federated引擎,如下图:

【MySQL】Federated引擎与Federated Server访问远程数据_数据库

至于mysql.cnf文件的存储位置各个不同版本(指的是Docker镜像)的MySQL可能存放路径不一样,本机采用的是linux版的MySQL并且已经挂载到宿主机的指定目录,因此只需要修改宿主机指定位置上的mysql.cnf即可。
在添加完成后重启一下mysql服务,如下图:

【MySQL】Federated引擎与Federated Server访问远程数据_mysql_02

重新登录一下然后看看是否已经启用,如下图:

【MySQL】Federated引擎与Federated Server访问远程数据_mysql_03

2. 创建Federated Server连接

其实一般来说直接通过Federated的Connection就可以连接到远程的服务器对应的数据库和表,如下图:

【MySQL】Federated引擎与Federated Server访问远程数据_mysql_04

(账号、密码和连接地址属于敏感信息都需要打码),这里最大的难点是远程数据库的密码中带有“@”关键字,因此创建的时候就会抛出下面错误:

Error Code: 1432. Can't create federated table. The data source connection string 'mysql://xxxhe:xxxhe!@#@192.168.xxx.xxx:xxxxxx/spot_paohe/spot_trad' is not in the correct format

为了解决这个问题,需要另建一个Federated Server来解决这种特殊字符的问题,以本例子为例需要使用下面的方式创建Federated Server,如下所示:

CREATE SERVER `spot_paohe_client`
FOREIGN DATA WRAPPER mysql
OPTIONS (
HOST '192.168.xxx.xxx',
PORT xxxxxx,
USER 'xxxhe',
PASSWORD 'xxxhe!@#',
DATABASE 'spot_paohe'
);

创建完成后可以通过以下命令进行连接,如下图:

【MySQL】Federated引擎与Federated Server访问远程数据_数据库_05

这样就创建出来了对应的表了,如下图:

【MySQL】Federated引擎与Federated Server访问远程数据_federated_06

之后就可以在本地做完所有的数据清洗了。

标签:数据库,MySQL,Federated,Server,引擎,mysql
From: https://blog.51cto.com/u_15761576/5900743

相关文章

  • MySQL进阶实战5,为什么查询速度会慢
    一、先了解一下MySQL查询的执行过程MySQL在查询时,它是由很多子任务组成的,每个子任务都会消耗一定的时间,如果要想优化查询,实际上要优化其子任务,可以消除一些子任务、减少子......
  • mysql
    MySQL教程mysqlMySQL是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem:关系数据库管理系统)应用软件之一。......
  • IIS报错:未能加载文件或程序集MySql.ConnectorInstaller, Version=8.0.8.0, Culture=ne
    删除machine.config中相关配置<siteMap><providers><addname="MySqlSiteMapProvider"type="MySql.Web.SiteMap.MySqlSiteMapProvider,MySql.ConnectorInstal......
  • 肖sir__mysql__插入时间
    createtablet1( idint(11)NOTNULLAUTO_INCREMENTPRIMARYKEY, d1_datadate, d2_timetime, d3_datatimedatetime, d4_yearyear, d5_timestampTIMESTAMP);INS......
  • MySQL补充知识及索引
    昨日内容回顾多表查询的关键字innerjoin...on...leftjoin...on....rightjoin...on...SQL关键字补充concat/concat_ws/add/change/modify多表查询实操方式......
  • MySQL常用函数-24课-2022-11-30
    --====================常用函数==============================--数学运算SELECTABS(-80)--绝对值SELECTCEILING(9.4)--向上取整SELECTFLOOR(9.4)--向下......
  • Containers vs Serverless:本质区别是什么?
     在云计算领域,容器和无服务器计算已经占据了发展前列。 作者 | EmraSamdan翻译 | bocloudresearch  一点历史在不久以前,应用程序的开发、部署和维护要比现在复杂得......
  • 新课程发布 | 如何用 7 分钟击破 Serverless 落地难点?
    当前,Serverless覆盖的技术场景正在不断变广。Serverless已在微服务、在线应用、事件驱动、任务处理等众多场景被验证且广泛应用。当你想要部署一个网站时,需要自己购买......
  • MYSQL高级语言(一)
    引言MySQL常用的sql语言为(增删改查),其中查最为常用,对MySQL数据库的查询,除了基本的查询外,有时候需要对查询的结果集进行处理。例如只取特定条数据、对查询结果进行排序......
  • MySQL备份及恢复
    一、为什么要数据备份备份的主要目的是灾难恢复,在生产环境中,数据的安全性至关重要,任何数据的丢失都可能产生严重的后果。造成数据丢失的原因程序错误人为操作错误运......