1)验证环境
源库:192.168.8.75 centos 7.5 mysql8.3
目标库:192.168.8.68 redhat 6.8 mysql5.7

2)登录源库并创建源表
$ mysql -u root -ppaasword -h 192.168.8.75
mysql> create database db_test;
mysql> use db_test;
mysql> create table t1(c1 int,c2 char(100));
mysql> insert into t1 values(1,'a');

3)登录源库创建用户并授权
$ mysql -u root -ppaasword -h 192.168.8.75
mysql> create user test@'%' identified by 'password';
mysql> grant select,insert,delete,update on db_test.t1 to test@'%';

3)目标库启用联合引擎
# vi /etc/my.cnf #添加如下行并保存
federated
# service mysqld start

4)登录目标库并创建联合表
# mysql -u root -ppassword -h 192.168.8.68
mysql> create database db_test;
mysql> use db_test;
mysql> create table f_t1(c1 int,c2 char(100))) engine=federated connection ='mysql://user_test:user_test_pwd@192.168.8.75:3306/test/t1';

5)登录目标库创建用户并授权
$ mysql -u root -ppassword -D db_test -h 192.168.8.68
mysql> create user test@'%' identified by 'password';
mysql> grant select,insert,delete,update on test.f_t1 to test;

5)登录目标库test用户测试
$ mysql -u test -ppassword -D db_test -h 192.168.8.68
mysql> select * from f_t1;
mysql> insert into f_t1 values(2,'b');
mysql> delete from f_t1 where c1=1;
mysql> update f_t1 set c2='w' where c1=2;

6)登录源库删除源表
$ mysql -u root -ppassword -D db_test -h 192.168.8.75
mysql>drop table t1;

7)登录目标端再次操作联合表
$ mysql -u user_test -ppassword -D db_test -h 192.168.8.68
mysql> select * from f_t1;
--会报错error 1430。

8)登录源库重建源表
$ mysql -u root -ppassword -D db_test -h 192.168.8.75
mysql> create table t1(c1 int,c2 char(100));
mysql> insert into t1 values(3,'cc');

9)再次登录目标库并操作联合表
$ mysql -u user_test -ppassword -D db_test -h 192.168.8.68
mysql> select * from f_t1;
mysql> insert into f_t1 values(5,'e');
--现在联合表一切恢复正常,可见源表删除并不会影响目标库中联合表的定义,重建源表即可恢复正常。

10)登录目标库创建视图
$ mysql -u user_test -ppassword -D db_test -h 192.168.8.68
mysql> create view v_f_t1 as select * from f_t1 where c1<5;
mysql> select * from v_f_t1;
--可见视图可以基于联合表创建。
mysql> insert into f_t1 values(6,'f');
mysql> select * from v_f_t1;
--可见视图可以限制用户对数据的访问范围。
mysql> insert into v_f_t1 values(7,'h');
--可见视图并不能限制用户插入数据的范围,其实,不仅针对联合表,针对常规表的视图,也是这样。
mysql> update v_f_t1 set c2='w';
--可见视图可以限制用户对数据集的更改范围,用户只能更改视图定义中允许范围的数据,哪怕update语句不带任何where条件。
mysql> delete from v_f_t1;
--可见视图可以限制用户对数据集的删除范围,用户只能删除视图定义中允许范围的数据,哪怕delete语句不带任何where条件。

转载于:https://www.cnblogs.com/lhdz_bj/p/10364033.html

mysql 联合表(federated)及视图相关推荐

  1. 怎么样查看视图+mysql_如何查询mysql数据表中的视图

    本篇文章主要给大家介绍怎么查询mysql数据表中的视图. 想必大家如果有看过之前的mysql视图相关的文章,都已经对视图的基本概念有一定的了解了.视图也就是是一个虚拟表,其内容由查询定义.同真实存在数 ...

  2. mysql视图中数据如何修改_怎么修改Mysql数据表中的视图

    本篇文章主要给大家介绍mysql数据表中怎么进行修改视图的操作. 关于mysql视图的基础知识,在之前的文章中也给大家详细介绍过了.这里我们再给大家先简单介绍下mysql视图. 通俗的说,视图是由SE ...

  3. mysql 分表后利用视图查询数据

    1.通常我们会遇到这样的情况:使用年限进行分表,例如2020年一个表.2021年一个表 2.这种情况查询就可以借助视图工具的帮助,我们可以新建一个视图工具, 先利用一个表,运行sql语句创建好视图,点 ...

  4. mysql删除多表视图数据,【杂谈】怎样删除mysql数据表视图中数据

    本篇文章主要给人人引见 mysql数据表中视图数据的删除操纵. 经由之前关于mysql视图的相干学问引见,置信列位新手朋侪们对视图的定义及基础操纵都有更进一步的熟悉. 简朴的说,视图就是一些查询语句的 ...

  5. mysql merge表介绍

    在Mysql数据库中.Mysql Merge表有点类似于视图.以下就让我们来一起了解一下Mysql Merge表都有哪些长处.希望对您能有所帮助. Mysql Merge表的长处: A: 分离静态的和 ...

  6. mysql创建全外连接的视图_关系型数据库 MySQL 表索引和视图详解

    原创: JiekeXu JiekeXu之路 一.索引 数据库索引通俗的讲就是和书本的目录一样,主要就是为了提高查询数据的效率.由于数据存储在数据库表中,所以索引是创建在数据库表对象上,由表中的一个字段 ...

  7. MySQL数据库(四):多表查询、视图、事务、索引、函数、Go连接MySQL

    MySQL数据库:视图.事务.索引.函数.Go连接MySQL 1.1 目录 文章目录 1.1 目录 1.2 多表查询分类 1.2.1 内连接[inner join] 1.2.2 左外连接[left j ...

  8. MySQL在多表上创建视图

    MySQL中,在两个或者以上的基本表上创建视图 在student表和stu_info表上,创建stu_class视图,查询出s_id号.姓名和班级 首先,创建stu_info表,并向表中插入数据 查看 ...

  9. mysql教程详解之多表联合查询,MYSQL教程mysql多表联合查询返回一张表的内容实现代码...

    搜索热词 <MysqL教程MysqL多表联合查询返回一张表的内容实现代码>要点: 本文介绍了MysqL教程MysqL多表联合查询返回一张表的内容实现代码,希望对您有用.如果有疑问,可以联系 ...

  10. MySQL/MariaDB表表达式(3):视图

    视图是表表达式的一种,所以它也是虚拟表.对视图操作的时候会通过语句动态的从表中临时获取数据. 1.创建.修改视图 CREATE [OR REPLACE][ALGORITHM = {UNDEFINED ...

最新文章

  1. NSAutoReleasePool使用中drain和release的区别
  2. mybatis多个foreach_使用 Mybatis 的 foreach 批量模糊 like 查询及批量插入
  3. Exchange企业实战技巧(27)邮件中使用数字签名和邮件加密功能
  4. navicat 只对比一张表的数据_Excel VBA批量新建工作表(对比数据透视表的使用)...
  5. Firefox about
  6. C++ 学习之旅(11)——类和结构中的static
  7. [文摘20071224]七条不可不知的生存法则
  8. do{}while(0)只执行一次无意义?你可能真的没理解!
  9. android调用系统的自定义裁剪后得到的图片不清晰,使用MediaStore.EXTRA_OUTPUT获取缓存下的清晰图片...
  10. 深刻理解Tensor的概念及其常见的操作_以Pytorch框架为例
  11. 编译linux内核成vmlinuz,内核编译之vmlinuz vmlinux system.map initrd
  12. java版教材管理系统源码
  13. matlab平稳性检验,平稳性检验方法的有效性研究
  14. vulhub学习(1) ActiveMQ反序列化漏洞(CVE-2015-5254)复现
  15. 统计学---一元线性回归
  16. Kde桌面程序启动器程序图标无法显示
  17. 初识 Arm 处理器
  18. python中的numpy标准正态分布_Numpy创建正态分布和均匀分布
  19. 【数据挖掘】数据挖掘概述
  20. pip报错:No module named pip

热门文章

  1. 代发核心期刊骗局_警惕“代发论文”骗局,落入骗子圈套
  2. go语言中常用的关于文件目录的操作
  3. python-gui-pyqt5的使用方法-5--为类增加信号
  4. hdmi接口有什么用_科普一下:电脑显示器用什么接口好,主流接口有哪些?
  5. php接口ip验证,php – IP地址验证帮助
  6. python判断变量相等_Python判断两个对象相等的原理
  7. 图的存储结构之十字链表、邻接多重表、边集数组
  8. “英伦配”收视牛过本山,网管软件如何配奇兵
  9. 让MySQL不区分大小写
  10. 关于学习js的Promise的心得体会