MYSQL 链接远程的FEDERATED引擎链接表(类似ORACLE的DBLINK)
2013-02-28 15:15
465 查看
MYSQL 链接远程的链接表(类似ORACLE的DBLINK)关于链接表
远程表:CREATE TABLE IF NOTEXISTS `category` ( `id` int(11) NOTNULLAUTO_INCREMENT, `category_id`int(11) NOTNULL, `name`varchar(20) NOTNULL, PRIMARYKEY(`id`)
)ENGINE=MYSAIMDEFAULTCHARSET=utf8;
本地建立链接表(映射10.10.10.133 app库的category表)的时候:
CREATE TABLE IF NOT EXISTS `remotecategory` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`category_id` int(11) NOT NULL,
`name` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
)ENGINE=FEDERATED DEFAULT CHARSET=utf8
CONNECTION='mysql://user:passwod@10.10.10.133:3306/app/category'; 注:表的结构一模一样,就是引擎不同,看红字FEDERATED
需要在 my.ini 的 [mysqld] 下面 加上federated
来激活FEDERATED (mysql 5.0.5以上的版本)
show engines
查看是否安装FEDERATED引擎,没有的重新编译一下
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DINSTALL_DATADIR=/opt/mnt/mydata -DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWIT
H_SSL=system -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITH_MYISAM_STORAGE_ENGINE=1
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1
---------------------------------------------------------------------------------------------------------------
mysql> show engines;
+--------------------+---------+------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+------------------------------------------------------------+--------------+------+------------+
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
| CSV | YES | CSV storage engine | NO | NO | NO |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
+--------------------+---------+------------------------------------------------------------+--------------+------+------------+
7 rows in set (0.00 sec)
mysql> show plugins;
+-----------------------+----------+--------------------+--------------------+---------+
| Name | Status | Type | Library | License |
+-----------------------+----------+--------------------+--------------------+---------+
| binlog | ACTIVE | STORAGE ENGINE | NULL | GPL |
| mysql_native_password | ACTIVE | AUTHENTICATION | NULL | GPL |
| mysql_old_password | ACTIVE | AUTHENTICATION | NULL | GPL |
| MEMORY | ACTIVE | STORAGE ENGINE | NULL | GPL |
| CSV | ACTIVE | STORAGE ENGINE | NULL | GPL |
| MRG_MYISAM | ACTIVE | STORAGE ENGINE | NULL | GPL |
| MyISAM | ACTIVE | STORAGE ENGINE | NULL | GPL |
| PERFORMANCE_SCHEMA | ACTIVE | STORAGE ENGINE | NULL | GPL |
| InnoDB | ACTIVE | STORAGE ENGINE | NULL | GPL |
| INNODB_TRX | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_LOCKS | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_LOCK_WAITS | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_CMP | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_CMP_RESET | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_CMPMEM | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_CMPMEM_RESET | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| FEDERATED | DISABLED | STORAGE ENGINE | NULL | GPL |
| partition | ACTIVE | STORAGE ENGINE | NULL | GPL |
| rpl_semi_sync_master | ACTIVE | REPLICATION | semisync_master.so | GPL |
| rpl_semi_sync_slave | ACTIVE | REPLICATION | semisync_slave.so | GPL |
+-----------------------+----------+--------------------+--------------------+---------+
20 rows in set (0.01 sec)
vim /etc/my.cnf
添加一行
federated
既可
------------------------------------------------------------------------------------------------------
federated远程连接表对主从有影响
主:
mysql> select * from lijiwei_48;
Empty set (0.00 sec)
mysql>
从:
mysql> select * from lijiwei_48;
Empty set (0.00 sec)
mysql>
主:
mysql> insert into lijiwei_48 values(1);
Query OK, 1 row affected (0.01 sec)
mysql> select * from lijiwei_48;
+------+
| id |
+------+
| 1 |
| 1 |
+------+
2 rows in set (0.00 sec)
从:
mysql> select * from lijiwei_48;
+------+
| id |
+------+
| 1 |
| 1 |
+------+
2 rows in set (0.00 sec)
主从两台mysql各自插入一条数据,导致同步数据出错
同步dblink类似数据库要格外小心,同样当心触发器
使用FEDERATED建表语句如下:
CREATE TABLE (......) ENGINE =FEDERATED CONNECTION='mysql://[name]:[pass]@[location]:[port]/[db-name]/[table-name]'
创建成功后就可直接在本地查询相应的远程表了。
需要注意的几点:
1. 本地的表结构必须与远程的完全一样。
2.远程数据库目前仅限MySQL
3.不支持事务
4.不支持表结构修改
远程表:CREATE TABLE IF NOTEXISTS `category` ( `id` int(11) NOTNULLAUTO_INCREMENT, `category_id`int(11) NOTNULL, `name`varchar(20) NOTNULL, PRIMARYKEY(`id`)
)ENGINE=MYSAIMDEFAULTCHARSET=utf8;
本地建立链接表(映射10.10.10.133 app库的category表)的时候:
CREATE TABLE IF NOT EXISTS `remotecategory` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`category_id` int(11) NOT NULL,
`name` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
)ENGINE=FEDERATED DEFAULT CHARSET=utf8
CONNECTION='mysql://user:passwod@10.10.10.133:3306/app/category'; 注:表的结构一模一样,就是引擎不同,看红字FEDERATED
需要在 my.ini 的 [mysqld] 下面 加上federated
来激活FEDERATED (mysql 5.0.5以上的版本)
show engines
查看是否安装FEDERATED引擎,没有的重新编译一下
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DINSTALL_DATADIR=/opt/mnt/mydata -DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWIT
H_SSL=system -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITH_MYISAM_STORAGE_ENGINE=1
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1
---------------------------------------------------------------------------------------------------------------
mysql> show engines;
+--------------------+---------+------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+------------------------------------------------------------+--------------+------+------------+
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
| CSV | YES | CSV storage engine | NO | NO | NO |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
+--------------------+---------+------------------------------------------------------------+--------------+------+------------+
7 rows in set (0.00 sec)
mysql> show plugins;
+-----------------------+----------+--------------------+--------------------+---------+
| Name | Status | Type | Library | License |
+-----------------------+----------+--------------------+--------------------+---------+
| binlog | ACTIVE | STORAGE ENGINE | NULL | GPL |
| mysql_native_password | ACTIVE | AUTHENTICATION | NULL | GPL |
| mysql_old_password | ACTIVE | AUTHENTICATION | NULL | GPL |
| MEMORY | ACTIVE | STORAGE ENGINE | NULL | GPL |
| CSV | ACTIVE | STORAGE ENGINE | NULL | GPL |
| MRG_MYISAM | ACTIVE | STORAGE ENGINE | NULL | GPL |
| MyISAM | ACTIVE | STORAGE ENGINE | NULL | GPL |
| PERFORMANCE_SCHEMA | ACTIVE | STORAGE ENGINE | NULL | GPL |
| InnoDB | ACTIVE | STORAGE ENGINE | NULL | GPL |
| INNODB_TRX | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_LOCKS | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_LOCK_WAITS | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_CMP | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_CMP_RESET | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_CMPMEM | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_CMPMEM_RESET | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| FEDERATED | DISABLED | STORAGE ENGINE | NULL | GPL |
| partition | ACTIVE | STORAGE ENGINE | NULL | GPL |
| rpl_semi_sync_master | ACTIVE | REPLICATION | semisync_master.so | GPL |
| rpl_semi_sync_slave | ACTIVE | REPLICATION | semisync_slave.so | GPL |
+-----------------------+----------+--------------------+--------------------+---------+
20 rows in set (0.01 sec)
vim /etc/my.cnf
添加一行
federated
既可
------------------------------------------------------------------------------------------------------
federated远程连接表对主从有影响
主:
mysql> select * from lijiwei_48;
Empty set (0.00 sec)
mysql>
从:
mysql> select * from lijiwei_48;
Empty set (0.00 sec)
mysql>
主:
mysql> insert into lijiwei_48 values(1);
Query OK, 1 row affected (0.01 sec)
mysql> select * from lijiwei_48;
+------+
| id |
+------+
| 1 |
| 1 |
+------+
2 rows in set (0.00 sec)
从:
mysql> select * from lijiwei_48;
+------+
| id |
+------+
| 1 |
| 1 |
+------+
2 rows in set (0.00 sec)
主从两台mysql各自插入一条数据,导致同步数据出错
同步dblink类似数据库要格外小心,同样当心触发器
使用FEDERATED建表语句如下:
CREATE TABLE (......) ENGINE =FEDERATED CONNECTION='mysql://[name]:[pass]@[location]:[port]/[db-name]/[table-name]'
创建成功后就可直接在本地查询相应的远程表了。
需要注意的几点:
1. 本地的表结构必须与远程的完全一样。
2.远程数据库目前仅限MySQL
3.不支持事务
4.不支持表结构修改
相关文章推荐
- mysql使用federated_实现类似oracle的dblink的功能
- oracle实现类似mysql的LIMIT,也可以作为oracle分页使用
- 用mysql链接远程数据库
- mysql中使用tee实现类似oracle spool功能
- mysql远程链接问题 ERROR 2003 (HY000): Can't connect to MySQL server
- oracle通过dblink连接Mysql
- oracle中与mysql中的命令 show databases, show tables, desc table类似的命令集
- oracle、mysql、sql server等;流行数据库的链接驱动配置
- Oracle如何实现类似MySQL的show create table,show index的功能
- 解决mysql 远程链接问题
- oracle链接远程数据源
- Windows服务器开启/删除端口,MySQL开启远程链接
- MySQL FEDERATED引擎使用示例, 类似Oracle DBLINK(转)
- PLSQL developer +oracle client配置链接远程数据库
- Oracle访问Mysql的DBLink设置
- Oracle中的ROWNUM rowid 以及MySQL中实现rownum功能类似的语句
- c#远程链接服务器中MySQL
- 记录远程链接MYSQL历程
- 在oracle中通过链接服务器(dblink)访问sql server
- oracle中的区间查询(类似mysql中的limit)