mysql怎么创建外表_PostgreSQL使用MySQL外表的步骤详解(mysql_fdw)
浅谈
postgres不知不觉已经升到了版本13,记得两年前还是版本10,当然这中间一直期望着哪天能在项目中使用postgresql,现在已实现哈~;
顺带说一下:使用postgresql的原因是它的生态完整,还有一个很重要的点儿是速度快这个在第10版的时 这么说也许还为时过早,
但是在13这一版本下一点儿也不为过,真的太快了,我简单的用500w的数据做聚合,在不建立索引(主键除外)的情况下 执行一个聚合操作,postgres
的速度是mysql的8倍,真的太快了~;好了,这一章节我就聊一聊我实际碰到的问题,就是:跨库查询,这里是用mysql_fdw实现的。
环境准备
一个mysql实例(5.7或8均可)
一个postgres实例(这里使用源码编译安装的13,建议13,11或12也可)
一台linux(以下内容使用的是centos,其它系统也可参考哈)
以下内容仅仅为安装及使用mysql_fdw的教程,具体mysql及postgres怎么安装我就一并略去
准备libmysqlclient
注意:若mysql与postgresql在同一台linux机上,则无需安装mysql工具,请略过本段
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.22-linux-glibc2.17-x86_64-minimal.tar.xz
tar -xvJf mysql-8.0.22-linux-glibc2.17-x86_64-minimal.tar.xz
chown -R mysql:mysql /usr/local/mysql/
cd mysql-8.0.22-linux-glibc2.17-x86_64-minimal
cp -r ./* /usr/local/mysql/
配置环境变量
配置文件
vi /etc/profile
添加mysql环境变量
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:/usr/local/mysql/bin
export LD_LIBRARY_PATH=MYSQL_HOME/lib:$LD_LIBRARY_PATH
添加postgres环境变量
export PG_HOME=/usr/local/pgsql
export LD_LIBRARY_PATH=$PG_HOME/lib:$MYSQL_HOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib
export PATH=$PG_HOME/bin:$MYSQL_HOME/bin:$PATH:.
刷新配置
source /etc/profile
下载并编译mysql_fdw
下载地址:
https://github.com/EnterpriseDB/mysql_fdw/releases
解压
tar -xzvf REL-2_5_5.tar.gz
进入
cd mysql_fdw-REL-2_5_5
编译
make USE_PGXS=1
安装
make USE_PGXS=1 install
重启postgres
安装mysql_fdw 并 配置完成环境变量必须重启postgresql,这个很重要
su postgres
/usr/local/pgsql/bin/pg_ctl -D /mnt/postgres/data -l logfile stop
/usr/local/pgsql/bin/pg_ctl -D /mnt/postgres/data -l logfile start
psql [ or /usr/local/pgsql/bin/psql]
登录到postgres并配置mysql_server
\c YOUR_DB_NAME
CREATE EXTENSION mysql_fdw;
CREATE SERVER mysql_server FOREIGN DATA WRAPPER mysql_fdw OPTIONS (host 'HOST', port '3306');
CREATE USER MAPPING FOR YOUR_DB_NAME SERVER mysql_server OPTIONS (username 'USERNAME', password 'PASSWORD');
GRANT USAGE ON FOREIGN SERVER mysql_server TO YOUR_DB_NAME;
GRANT ALL PRIVILEGES ON ods_tianmao_transaction TO YOUR_DB_NAME;
创建外表
创建的外表必须在mysql中有对应的表,否则无法使用(也不会在DB工具中显示)
样例
CREATE FOREIGN TABLE YOUR_TABLE_NAME(
id numeric(22),
date date ,
name varchar(50),
create_time timestamp
)SERVER mysql_server OPTIONS (dbname 'YOUR_DB_NAME', table_name 'MYSQL_TABLE_NAME');
删除操作
删除扩展
DROP EXTENSION mysql_fdw CASCADE;
删除mysql_server
DROP SERVER [mysql_server] CASCADE;
删除外表
DROP FOREIGN TABLE [YOUR_FOREIGN_TABLE_NAME] CASCADE;
修改user mapping
ALTER USER MAPPING FOR YOUR_DB_USER SERVER mysql_server OPTIONS (SET password 'PASSWORD');
ALTER USER MAPPING FOR YOUR_DB_USER SERVER mysql_server OPTIONS (SET username 'USERNAME');
最后
想说的是postgresql的外表功能实在是太好用了,建立mysql外表后可直接在posgresql中执行增删改查等操作
更强大的是 还可以执行与postgresql表的连表查询,真香~,省去了应用配置数据源的麻烦。
到此这篇关于PostgreSQL使用MySQL外表的步骤详解(mysql_fdw)的文章就介绍到这了,更多相关PostgreSQL使用MySQL外表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
mysql怎么创建外表_PostgreSQL使用MySQL外表的步骤详解(mysql_fdw)相关推荐
- mysql 免安装初始化_mysql免安装版配置步骤详解分享
1.准备工作 下载mysql的最新免安装版本mysql-noinstall-5.1.53-win32.zip,解压缩到相关目录,如:d:\\ mysql-noinstall-5.1.53-win32. ...
- brew下载的mysql卸载_Mac中mongoDB的安装与卸载步骤详解
前言 MongoDB 是一个基于分布式文件存储的数据库,旨在为 web 应用提供可扩展的高性能数据存储解决方案.本文主要介绍的是关于在mac中安装卸载mongoDB数据库的方法,更多关于mongoDB ...
- php+mysql案例含源码_【专注】Zabbix源码安装教程—步骤详解(1)安装前准备
一.实验环境准备 Rhel 7.6 x86_64(server) 192.168.163.72 Rhel 6.5 x86_64(agent) 192.168.163.61 均已配置操作安装光盘为YUM ...
- mysql data文件夹恢复_【专注】Zabbix源码安装教程—步骤详解(2)安装并配置mysql...
四.安装并配置mysql(1) 解压mysql-5.7.26.tar.gz与boost_1_59_0.tar.gz #tar -xvf mysql-5.7.26.tar.gz #tar -xvf bo ...
- redhat7.1安装mysql_redhat7.1 安装mysql 5.7.10步骤详解(图文详解)
在redhat下安装MySQL,步骤如下 Mysql目录安装位置:/usr/local/mysql 数据库保存位置:/data/mysql 日志保存位置:/data/log/mysql 下载安装包 h ...
- mysql5.7.11 linux_CentOS 7 中以命令行方式安装 MySQL 5.7.11 for Linux Generic 二进制版本教程详解...
MySQL 目前的最新版本是 5.7.11,在 Linux 下提供特定发行版安装包(如 .rpm)以及二进制通用版安装包(.tar.gz).一般情况下,很多项目都倾向于采用二进制通用安装包形式来进行安 ...
- win10mysql卸载与重装_win10下完全卸载+重装MySQL步骤详解
相信大家因为种种各样的原因,需要重新版安装MySQL.笔者就因为连接MySQL和Qt时出现问题,迫不得已选择把64bitMySQL换成了32bitMySQL.由于卸载不干净,安装会出现种种问题.现在把 ...
- MySQL安装教程包含所有平台(图解),MySQL下载步骤详解(带安装教程)
现在作为服务器的操作系统一般有两种,分别是 Windows Server 和 Linux,这里我们分别介绍在 Windows 下和 Linux 下安装 MySQL 的具体操作步骤. MySQL安装教程 ...
- linux centos7 mysql_Linux centos7环境下安装MySQL的步骤详解
Linux centos7环境下安装MySQL的步骤详解 安装MySQL mysql 有两个跟windows不同的地方 1).my.ini 保存到/etc/my.ini 2).用户权限,单独用户执行 ...
- php mysql 任务队列_PHP+MySQL实现消息队列步骤详解
这次给大家带来PHP+MySQL实现消息队列步骤详解,PHP+MySQL实现消息队列的注意事项有哪些,下面就是实战案例,一起来看一下. 最近遇到一个批量发送短信的需求,短信接口是第三方提供的.刚开始想 ...
最新文章
- 150名打工人被AI判定效率低遭开除,“属实是人工智能,能治工人“
- SQLServer中利用NTILE函数对数据进行分组的一点使用
- WPF中将16进制颜色码转换成SolidColorBrush
- SpringBoot2.0整合Mybatis-Plus多数据源
- 删除 字符串中‘*’号 两端的除外。指针h、p分别指向第一个和最后一个字符
- C/C++笔试题(基础题)
- 20190825 On Java8 第十三章 函数式编程
- 使用envi将遥感数据从uint16转为uint8
- 关于性格内向者的10个误解,献给奋战在一线的程序员
- 银联网关支付接口规范
- 外地人排北京新能源指标需要什么条件?需要摇号吗?
- 基于WEB的PDF打印——浏览器中静默打印PDF文件
- Latex的一些排版技巧
- 微服务架构深度解析与最佳实践
- mysql 重新初始化
- cocos2dx 2.2 安装跟以往的不同
- 2021-09-23 什么是图灵测试
- 阿德莱德大学计算机专业教学,澳洲阿德莱德大学计算机硕士课程的专业设置如何?...
- 浅写策略模式,及map、枚举结合小例子
- DSP28335 SPI的使用