mysql 联合表(federated)及视图
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条件。
mysql 联合表(federated)及视图的更多相关文章
- mysql 联合表查询从表即使有索引依然ALL的一个原因
那就是主表和从表的关联字段的编码方式不一样!!! 晕啊,折腾了半天才发现,可能是不知道啥时候mysql更改主体编码方式了,结果导致后来新建的表的关联字段和之前的主表的字段的编码方式不一样 改成一样的编 ...
- mysql merge表介绍
在Mysql数据库中,Mysql Merge表有点类似于视图.下面就让我们来一起了解一下Mysql Merge表都有哪些优点,希望对您能有所帮助. Mysql Merge表的优点: A: 分离静态的和 ...
- MySQL/MariaDB表表达式(3):视图
视图是表表达式的一种,所以它也是虚拟表.对视图操作的时候会通过语句动态的从表中临时获取数据. 1.创建.修改视图 CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED ...
- mysql中显示当前数据库下的所有表,包括视图。
环境说明: mysql版本:5.5.57-log 操作系统:Red Hat Enterprise Linux Server release 6.6 (Santiago) 需求:查看当前数据库下所有的表 ...
- 【3.3】mysql中的Federated存储引擎,远程表,相当于sql server的linked server
MySQL中针对不同的功能需求提供了不同的存储引擎.所谓的存储引擎也就是MySQL下特定接口的具体实现. FEDERATED是其中一个专门针对远程数据库的实现.一般情况下在本地数据库中建表会在数据库目 ...
- 谈谈MySQL数据表的类型(转)
谈谈MySQL数据表的类型 通常意义上,数据库也就是数据的集合,具体到计算机上数据库可以是存储器上一些文件的集合或者一些内存数据的集合. 我们通常说的MySql数据库,sql server数据库等等其 ...
- MySQL系统表的利用姿势(浅探)
MySQL数据库文件读写 权限要求: 具备读写权限并且目标文件为可读内容 目标内容具有完整路径且目录可访问 目标内容是否具备文件读写操作权限 查看是否有文件读写权限 show variables li ...
- mysql之子查询、视图、事务及pymysql等
数据准备 CREATE TABLE `emp` ( `id` int(0) NOT NULL AUTO_INCREMENT, `name` varchar(10) NOT NULL, `gender` ...
- MySQL全面瓦解15:视图
概述 很多时候,我们会有一些很复杂的数据库操作,比如整合用户的行为数据,那这些数据可能包含用户的餐饮.生活日用.充值消费.交通出行.通讯物流.交通出行.医疗保健.住房物业.运动健康... 基于此,我们 ...
随机推荐
- 语音活性检测器py-webrtcvad安装使用
谷歌为WebRTC项目开发的VAD是目前最优秀.最先进和免费的产品之一.webrtcvad是WebRTC语音活动检测器(VAD)的python接口.兼容python2和python3.功能是将一段音频 ...
- nginx运用
1.nginx的 命令 start nginx 这样,nginx 服务就启动了.打开任务管理器,查看 nginx.exe 进程,有二个进程会显示,占用系统资源,那是相当的少.然后再打开浏览器,输入 h ...
- docker命令
## List Docker CLI commandsdockerdocker container --help ## Display Docker version and infodocker -- ...
- java0429 wen 数据库
- 算法(第四版)C# 习题题解——2.1
写在前面 整个项目都托管在了 Github 上:https://github.com/ikesnowy/Algorithms-4th-Edition-in-Csharp 这一节内容可能会用到的库文件有 ...
- kube-liveboard: kubernetes集群可视化工具
kube-liveboard 随着kubernetes 集群的增大,对于集群数据选取恰当的形式进行展示有助于直观反映集群的状态,方便发现集群的短板,了解集群的瓶颈.因此,笔者做了kube-livebo ...
- 【做题】CSA72G - MST and Rectangles——Borůvka&线段树
原文链接 https://www.cnblogs.com/cly-none/p/CSA72G.html 题意:有一个\(n \times n\)的矩阵\(A\),\(m\)次操作,每次在\(A\)上三 ...
- jQuery添加删除
//代码 <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <titl ...
- 廖雪峰 JavaScript 学习笔记(函数)
JavaScript中,定义函数的方式如下: function abs(x) { if (x >= 0) { return x; } else { return -x; } } 上述abs()函 ...
- 承接AR摄像头识别外包 AR图像识别 AR识别图像 AR识别应用外包
增强现实简称AR,是一种实时计算摄影机影像的位置及角度并加上相应图像的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并实现互动. 这里千万别和VR虚拟现实混了.简单说就是VR看到的场景都是假的, ...