【MySQL】使用远程连接做数据清洗

1. 启用Federated引擎

由于要对远程数据库做外部映射,所以在本地库中需要先开启参数项federated,通过开启Federated引擎来实现数据映射。

先通过

show engines;

查看本地mysql中是否开启了Federated引擎。
在这里插入图片描述
如上图所示,当前是没有开启Federated引擎的。接下来就需要通过修改配置文件来开启federated引擎。
在这里插入图片描述
注意:由于使用的是docker镜像的mysql,所以配置文件中需要配置路径的时候一定要写镜像中Linux的路径。

在cnf文件中添加“federated”后重启一下mysql服务。
在这里插入图片描述
之后,重新登录查看是否已经启用federated引擎,如下图:
在这里插入图片描述

2. 创建Federated Server来连接远程数据库

其实一般来说直接通过Federated的Connection就可以连接到远程的服务器对应的数据库和表,如下图:
在这里插入图片描述
但是可恶就可恶在密码那边存在了一个“@”号。由于“@”是保留字符,在直接创建连接时就会出现以下报错:

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

为了解决这个问题需要创建一个Federated Server来解决这种特殊字符的问题,以本例子为例:

CREATE SERVER `spot_paohe_client`
FOREIGN DATA WRAPPER mysql
OPTIONS (
  HOST '192.168.100.253',
  PORT 3306,
  USER 'paohe',
  PASSWORD 'paohe!@#',
  DATABASE 'spot_paohe'
);

创建完成后可以通过以下命令进行连接。
在这里插入图片描述
这样就创建出来了对应的表了。
在这里插入图片描述
之后就可以在本地做完所有的数据清洗了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kida 的技术小屋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值