MySql学习笔记--MySql数据库表远程映射
2018-02-27 14:47
246 查看
需求背景
现在在做的项目分为7个服务,其中有一个单表服务,对应的数据库有一张表存储的是单表的数据,其他服务用到这张表基本是需要将本服务的表中对应的id转换为对应的name。项目初期没有分库分表,但是项目稳定一版后,架构方面考虑分库分表,这样就涉及到一个服务在开发阶段不能随意连接其他服务的表进行操作,为了解决此问题,我们考虑将单表服务的表远程映射到其他服务的数据库中,这样做,当单表服务的数据有变动时,其他服务对应的单表数据表数据也会同步!MySQL开启federated引擎
一、Windows环境
1.查看当前federated引擎是否开启
使用navicat连接mysql之后,F6键打开命令行界面,输入指令:show engines;2.开启federated引擎
①mysql -uroot -proot 连接mysql②查看mysql的安装目录和数据存放路径
③找到mysql的数据存放路径,会找到相应的my.ini文件,如果找到之后叫其他的名字,可以改名为my.ini,打开my.ini文件在其中加上federated
3.重启mysql服务
①快捷键win+X+G打开计算机管理,找到mysql的服务,将mysql的服务停掉之后再启动
4.再次使用show engines;命令查看federated引擎是否开启
二、Linux环境
1.连接mysql,使用命令show engines;查看引擎是否开启
2.使用命令whereis my.cnf查看配置文件的位置(我的在/etc/my.cnf)
3.使用命令vim /etc/my.cnf编辑配置文件
4.配置文件中加上federated
5.使用命令service mysqld restart重启mysql服务
6.再次使用命令show engines;查看是否开启成功
映射远程表
现在假设有两套库,一套在服务器192.168.22.10上,一套在我本地127.0.0.1上,将单表服务分在服务器上,我本地数据库上没有单表的数据表,只有我们本服务的表。服务器上的数据库名称叫itoo,单表有一张表叫t_dictionary,现在将服务器上的t_dictionary表映射到我本地库中,在我本地,连接mysql,执行以下命令:CREATE TABLE `t_dictionary` (`id` varchar(22) NOT NULL,
`operator` varchar(20) DEFAULT NULL COMMENT '操作人',
`is_delete` tinyint(2) DEFAULT NULL COMMENT '是否删除',
`dictionary_code` varchar(20) DEFAULT NULL COMMENT '字典code',
`dictionary_name` varchar(20) DEFAULT NULL COMMENT '字典类型名称',
`timespan` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '时间戳',
PRIMARY KEY (`id`),
KEY `FK_9wjh2c0vbqiu5qdgnhay8t9le` (`dictionary_type_id`) USING BTREE
) ENGINE=FEDERATED
CONNECTION='mysql://admin:admin@192.168.22.10:3306/itoo/t_dictionary'; 其中创建的表结构要和服务器上的一模一样,ENGINE为FEDERATED,CONNECTION中的admin:admin表示服务器的用户名:密码,itoo是服务器上的数据库名称,t_dictionary是服务器上的表名称,执行完之后,在本地库中将看到t_dictionary表已经映射过来了。
测试
在服务器上将这张映射的表修改一条数据,会发现本地库中这张映射过来的表数据同时改变了!到此基本可以确定这样远程映射表是成功了!我将代码中的数据库地址修改为我本地,执行某个接口的查询操作,成功查询回正确的结果,标明远程映射表成功!相关文章推荐
- 【MySQL学习笔记】3:使JDBC后端程序和MySQL数据库在局域网内分离
- mysql学习笔记之mysql数据库的安装
- Mysql DBA 高级运维学习笔记-初步增量恢复mysql数据库
- MySQL学习笔记-MySQL数据库优化实践[转]
- Mysql DBA 高级运维学习笔记-Mysql数据库中的日志文件
- MySQL学习笔记_1_MySQL数据库管理系统概述
- MYSQL数据库 - 学习笔记2 - C语言操作MYSQL
- mysql学习笔记之mysql数据库的安装
- Python学习总结笔记(9)-- MySQL数据库操作之mysql-connector
- 【MYSQL数据库】MYSQL学习笔记-mysql分区基本操作
- 树莓派学习笔记1 -- 解决mysql无法远程连接问题
- MySQL学习笔记_12_Linux下C++/C连接MySQL数据库(二) --返回数据的SQL
- MySQL学习笔记1----MySQL数据库基本操作
- 【PHP+MySQL学习笔记】php操作MySQL数据库中语句
- mysql学习笔记——远程连接数据库
- MySQL学习笔记_13_Linux下C++/C连接MySQL数据库(三) --处理返回数据
- Mysql DBA高级运维学习笔记-mysql数据库介绍
- 【MYSQL数据库】MYSQL学习笔记-mysql分区基本操作
- mysql数据库学习笔记 -- Mysql解决
- MySQL学习笔记2---MySQL数据库的存储引擎和数据类型