MySQL的FEDERATED引擎实现类Oracle的DBlink(2)

| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |

+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+

9 rows in set (0.01 sec)

一般这种情况就是有FEDERATED引擎但是没有启用,启用很简单,在my.cnf或my.ini中的[mysqld]段中修改添加,如下:

[mysqld]

……

federated

……

重启MySQL,此时再看就启用了FEDERATED引擎

MySQL的FEDERATED引擎实现类Oracle的DBlink

此时再本地数据库建虚拟表用来链接远程数据库,其表结构可以通过在远程数据库中通过SHOW CREATE TABLE来查看DDL,但是要注意去掉主键、索引、自增字段,但是本地的虚拟表的表名可以不同,如远程数据库:192.168.2.25下的my_test库下有一张book_price表,远程数据库上的DDL:

CREATE TABLE `book_price` (

  `book_name` varchar(255) NOT NULL DEFAULT '',

  `book_price` decimal(11,3) NOT NULL DEFAULT '0.000'

) ENGINE=InnoDB DEFAULT CHARSET=utf8

在本地数据库中的DDL如下:

CREATE TABLE `book_price_local` (

  `book_name` varchar(255) NOT NULL DEFAULT '',

  `book_price` decimal(11,3) NOT NULL DEFAULT '0.000'

) ENGINE=FEDERATED DEFAULT CHARSET=utf8 CONNECTION='mysql://root:password#@192.168.2.25:3306/my_test/book_price'

#源端表DDL ENGINE=federated CONNECTION= 'mysql://用户:密码@IP地址:端口/库名称/表名称';

这里需要注意的是CONNECTION后则是远程数据库的连接信息,这里要注意的是避免使用带‘@’的密码以免混淆,效果如下:

MySQL的FEDERATED引擎实现类Oracle的DBlink

MySQL的FEDERATED引擎实现类Oracle的DBlink

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/fec98d1e5b77315ec446557cbf20f556.html