mysql添加Federated引擎问题

现在我有这么一个需求, 就是有两个项目, 一个叫项目A,一个项目B, 由于A的用户表和B的用户表是要实现一样的.

例如: 我在A项目中注册了,要实现在B项目中也能登录

由于用到的数据是mysql, 那么可以使用Federated引擎实现这个需求.

环境

首先查询一下mysql中有没有Federated这个引擎.我有的是mysql5.7.22

show engines;

结果

mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)

这是有的, 在最后一项, 但是它没有开启, 那么接下来就方便多了.

第一步

在my.cnf中添加federated这一个属性就可开启.

再查询一下

下面就是在建表语句中加入Federated了.

第二步

	声明引擎		连接属性		  账号	密码		ip			  port 数据库	表
ENGINE =FEDERATED CONNECTION=‘mysql://root:[email protected]:3306/zskdb/cas_user‘;

slave中创建表结构的时候加入上面引擎.

CREATE TABLE `cas_user` (
  `id` varchar(255) NOT NULL COMMENT ‘id‘,
  `encryid` varchar(255) DEFAULT NULL COMMENT ‘加密后的用户id‘,
  `name` varchar(255) DEFAULT NULL COMMENT ‘用户名‘,
  `password` varchar(255) DEFAULT NULL COMMENT ‘密码‘,
  `mobile` varchar(40) DEFAULT NULL COMMENT ‘手机号码‘,
  `email` varchar(100) DEFAULT NULL COMMENT ‘邮箱‘,
  `sex` int(1) DEFAULT NULL COMMENT ‘性别(0:男,1:女)‘,
  `credit` double(11,2) DEFAULT ‘0.00‘,
  PRIMARY KEY (`oid`),
  UNIQUE KEY `upk_user_id` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT=‘用户表‘
ENGINE =FEDERATED CONNECTION=‘mysql://root:[email protected]:3306/zskdb/cas_user‘;

从上面可以看出来, 我本身表就已经有啦innodb引擎, 我在后面再添加了一个.

 注意: 只要表结构就行, 数据会自动从master中映射过来的.

演示:只要master中的cas_user表有操作,在slave中会显示同样的操作, 我在master中删除两条数据, 打开slave的cas_user会发现数据同样少了那被删的两条.

原文地址:https://www.cnblogs.com/chenglee/p/9567248.html

时间: 2024-10-13 04:07:55

mysql添加Federated引擎问题的相关文章

MySQL的FEDERATED引擎实现类Oracle的DBlink

随着业务的复杂度不断的增加.数据库不断的切分,在分布式系统中往往一台或几台数据库并不能满足我们的需求,所以常常需要多台同时时用,而在平时需要通过其它服务器的数据库获取信息最为方便的就是数据链接,而比较常见的如Oracle中的DBlink一般,使用过Oracle的DBlink-数据库的链接的人都知道可以跨服务器数据库的来进行数据查询.而在MySQL5.0以后中通过使用FEDERATED引擎也可以实现类似于Oracle中DBlink,在MySQL5.5开始默认安装只是没有启用,同Oracle的DBl

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

问题: 这里假设我需要在IP1上的database1上访问IP2的database数据库内的table2表 方法: 这里database作为本地数据库需要开启federated引擎才可以访问远程的database内的表,具体开启方法如下: 本地IP1数据库DATABASE1开启FEDERATED引擎 http://blog.csdn.net/bravezhe/article/details/8269648 MYSQL命令行,查看FEDERATED引擎是否开启,默认是不开启 >show engin

MySQL开启federated引擎实现数据库表映射

1.查看federated引擎是否开启 点击进入Navicat并点击键盘上F6,出现命令行界面 ,输入指令:show engines; 2.开启federated引擎 Windows系统 : 在my.ini中加入federated 3.建立映射表 在服务器A上有MySQL数据库test_a,在服务器B上有MySQL数据库test_b.现在需要将test_a库中的user表数据映射到数据库test_b中.此时需要在数据库test_b中建立表user,注意ENGINE和CONNECTION. CRE

利用MySQL之federated引擎实现DBLink功能

有时候我们需要跨库join查询,但是配置多数据源成本又太高,Oracle提供了DBLink功能,MySQL中也有类似的实现:federated-engine. MySQL中使用federated引擎的表能够映射远程数据库的表,本地的这张表相当于远程数据库某表在本地的引用,在本地对表的操作能够实时的反应到远程表上,包括CRUD. 要实现首先需要开启本地库的federated引擎[远程数据库不需要任何配置],使用SHOW ENGINES;语句查询本地库是否开启了federated-engine:如果

Mysql的跨服务器 关联查询--Federated引擎

1.确认开启Federated引擎 查询FEDERATED功能是否开启: show ENGINES; 2.如果状态为NO则需修改my.ini文件,增加一行federated配置: 在[mysqld]下面添加 federated,然后重启mysql 3.建立映射表 注意: - 表名可以不同,但表结构要完全相同 - ENGINE=InnoDB 要改成 ENGINE=FEDERATED - 添加最下面一行:CONNECTION='mysql://用户名:密码@ip:端口/数据库名/表名' 4.结果(此

详细介绍Mysql各种存储引擎的特性以及如何选择存储引擎

最近业务上有要求,要实现类似oracle 的dblink linux版本 Server version: 5.6.28-0ubuntu0.14.04.1 (Ubuntu) 修改配置文件 /etc/mysql/my.cnf windows 版本 Server version: 5.6.21-log MySQL Community Server (GPL) 修改配置文件my.ini 接着将其开启,在 [mysqld] 下添加一行: federated 重启Mysql,完成. mysql> show

MySQL的数据库引擎

Mysql的数据库引擎有很多,最重要的就是MyISAM.InnoDB.heap(memory),此外还有BDB.archive数据表.csv.ndb.federated InnoDB 优点: 1.对数据库事务支持,支持四种事务级别(read uncommitted.read committed.repeatable read.serializable) 2.提供行级锁(内建的)和外键,目的是处理大量数据库系统,行级锁锁定的只是一次事务中的记录,不会锁定数据表,所以其他的用户都可以去访问操作数据库

(DBA之路【二】)mysql 主流存储引擎的特点

innoDB存储引擎: 如果应用中需要执行大量的INSERT或UPDATE操作,则应该使用InnoDB. 优点:(1) innodb存储引擎该mysql表提供了事务(事务有原子性以及一致性,这样保障数据安全,全步对才对),回滚以及系统崩溃修复能力(断电或者异常前能够自动保存数据)和多版本迸发控制的事务的安全.大尺寸的数据集趋向于选择InnoDB方式,因为其支持事务处理和故障恢复,INNODB通过事务日志来恢复数据. (2)innodb存储引擎支持外键(foreign key)这个很好用,表可以级

mysql数据库存储引擎及区别

MySQL有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用:MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB(BerkeleyDB).EXAMPLE.FEDERATED.ARCHIVE.CSV.BLACKHOLE. mysql的存储引擎包括:MyISAM.InnoDB.BDB.MEMORY.MERGE.EXAMPLE.NDBCluster.ARCHIVE.CSV.BLACKHOLE.FEDERATED等,其中InnoDB和BDB提供事务安全表,其他存储引擎都是