mysql feterated 配置_mysql使用federated引擎实现远程访问数据库(跨网络同时操作两个数据库中的表)...

需求:

需要在IP1上的database1上访问IP2的database数据库内的table2表

这里database作为本地数据库需要开启federated引擎才可以访问远程的database内的表

> show engines;

64ea212802bd111927ef49c2e51fd485.png

如果有FEDERATED引擎,但Support是NO,说明你的mysql安装了这个引擎,但没启用,去my.cnf文件末添加一行 federated

配置my.cnf,加入feterated

[mysqld]

feterated

重新启动mysql即可。

远程IP2数据库database2开启远程连接

开启之后,本地数据库database1才有权限访问远程的database2

2)创建远程登陆用户并授权

USE mysql;

SELECT host,user,PASSWORD from user;

GRANT ALL PRIVILEGES ON *.* TO "root"@"%" IDENTIFIED BY "yourpassward";

FLUSH PRIVILEGES;

USE mysql;

SELECT host,user,PASSWORD from user;

create user 'test'@'%' identified by '123456'

# test 数据库的所有权限授权给 ted 这个用户,允许 ted 用户在 192.168.20.22 这个 IP 进行远程登陆,并设置 ted 用户的密码为 123456 。

grant all PRIVILEGES on test.* to ted@'192.168.20.22' identified by '123456';

在本地数据库database1中创建远程数据库表

要求表结构要一模一样,所以可以先

在database2里面找到建立表table2的语句

SHOW CREATE TABLE database2.table2

得到建表语句

CREATE TABLE `e_hostcomputer` (

`ID` bigint(20) NOT NULL COMMENT 'ID',

`CODE` varchar(30) DEFAULT NULL COMMENT '编码',

`NAME` varchar(50) DEFAULT NULL COMMENT '名称',

`IP` varchar(15) DEFAULT NULL COMMENT 'IP地址',

`STATUS` char(1) DEFAULT NULL COMMENT '状态',

`CRTR` varchar(50) DEFAULT NULL COMMENT '创建者',

`CRTDT` timestamp NULL DEFAULT NULL COMMENT '创建时间',

`UPDR` varchar(50) DEFAULT NULL COMMENT '修改者',

`UPDDT` timestamp NULL DEFAULT NULL COMMENT '修改时间',

PRIMARY KEY (`ID`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='上位机表'

远程IP2上数据库database2中的表table2

在本地建立相同的表(远程表)

CREATE TABLE `e_hostcomputer_link39` (

`ID` bigint(20) NOT NULL COMMENT 'ID',

`CODE` varchar(30) DEFAULT NULL COMMENT '编码',

`NAME` varchar(50) DEFAULT NULL COMMENT '名称',

`IP` varchar(15) DEFAULT NULL COMMENT 'IP地址',

`STATUS` char(1) DEFAULT NULL COMMENT '状态',

`CRTR` varchar(50) DEFAULT NULL COMMENT '创建者',

`CRTDT` timestamp NULL DEFAULT NULL COMMENT '创建时间',

`UPDR` varchar(50) DEFAULT NULL COMMENT '修改者',

`UPDDT` timestamp NULL DEFAULT NULL COMMENT '修改时间',

PRIMARY KEY (`ID`)

) ENGINE=federated connection="mysql://scp_pm_154_54:scp_pm_154_54@112.219.11.139:13306/rzem/e_hostcomputer";

在本地就可以看到远程表里面的内容了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值