【Mysql之跨节点查询数据】

来源:转载

Mysql之跨主机查询,mysql的dblink的功能目前是具有federated存储引擎 。federated属于 MySQL的一种特殊引擎,利用它可将本地数据表映射至远程 MySQL 数据表,从而就可以解决应用程序中繁多的跨机器连接数据库问题


查看本地数据库是否支持跨节点查询

修改,本地数据库配置,再次验证


跨节点查询方案一:

方案一验证:

跨节点查询方案二:


建表语句

方案二验证:

高级功能:

Server信息的存储


Server信息的删除


针对数据的操作




备注:

SHOW ENGINES

CREATE TABLE T1 (

`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,

`hash` varchar(32) NOT NULL DEFAULT '',

`name` varchar(200) NOT NULL DEFAULT '',

`input_string` varchar(255) DEFAULT NULL,

`type_id` tinyint(2) NOT NULL DEFAULT '0',

PRIMARY KEY (`id`),

KEY `name` (`name`)

) ENGINE =FEDERATED CONNECTION='mysql://root:[email protected]:3306/cacti/data_input';

select * from t1

CREATE SERVER Linux_Mysql

FOREIGN DATA WRAPPER mysql

OPTIONS (HOST '192.168.1.101',USER 'root',PASSWORD 'root' ,PORT 3306,DATABASE 'cacti');

drop server Linux_Mysql

CREATE TABLE T2 (

`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,

`hash` varchar(32) NOT NULL DEFAULT '',

`name` varchar(200) NOT NULL DEFAULT '',

`input_string` varchar(255) DEFAULT NULL,

`type_id` tinyint(2) NOT NULL DEFAULT '0',

PRIMARY KEY (`id`),

KEY `name` (`name`)

) ENGINE =FEDERATED CONNECTION='Linux_Mysql/data_input'

select * from T2

select * from mysql.servers

通过create server方法创建基于远程服务器的链接,但是这种链接也是用于federated存储引擎,不能通过该链接来查询远程服务器的表。

语法:

CREATE SERVER server_name

FOREIGN DATA WRAPPER wrapper_name

OPTIONS (option [, option] ...)

option:

{ HOST character-literal

| DATABASE character-literal

| USER character-literal

| PASSWORD character-literal

| SOCKET character-literal

| OWNER character-literal

| PORT numeric-literal }

注意:wrapper_name只能是mysql,使用其它名称无法支持

1.创建server

CREATE SERVER server_10

FOREIGN DATA WRAPPER mysql

OPTIONS (HOST '192.168.137.10',USER 'root',PASSWORD 'root' ,PORT 3306,DATABASE 'study');

注意:这些基本参数应该存在,至少需要保证通过这些参数能连接到远程服务器,DATABASE不能少

【Mysql之跨节点查询数据】

分享给朋友:
您可能感兴趣的文章:
随机阅读: