MySQL如何访问Postgres - Go语言中文社区

MySQL如何访问Postgres


前言

PostgreSQL 可以通过mysql_fdw访问MySQL(或者MariaDB),

那MySQL如何访问PostgreSQL呢?

答案是CONNECT Store Engine。

MariaDB 从 10.0.2版本开始支持CONNECT Store Engine。

CONNECT存储引擎使MariaDB可以访问外部(本地或远程)数据(MED)。这是通过根据不同的数据类型(尤其是各种格式的文件),通过ODBC或JDBC从其他DBMS或产品(例如Excel或MongoDB)提取的数据或从环境中检索到的数据(例如DIR,WMI)定义表来完成的 和MAC表)。

该存储引擎支持表分区,MariaDB虚拟列,并允许定义特殊列,例如ROWID,FILEID和SERVID。

本文就介绍下Ubuntu MariaDB如何通过CONNECT插件来访问Postgres。

环境

MariaDB 10.4

  • host: 127.0.0.1
  • port: 3306
  • username: root
  • password: pass

PostgreSQL 12.2

  • host: 192.168.1.6
  • port: 5433
  • username: postgres
  • database: postgres
  • password:

Ubuntu 18.04 LTS

安装CONNECT插件

$ apt-get install mariadb-plugin-connect
mysql> INSTALL SONAME 'ha_connect';

安装ODBC-PostgreSQL

MariaDB服务器上安装ODBC-PostgreSQL

$ apt-get install unixodbc odbc-postgresql

配置ODBC.ini


cat >>/etc/odbc.ini <<EOF
[pg12]
Description = PostgreSQL
Driver      = PostgreSQL Unicode
Trace       = No
TraceFile   = /tmp/psqlodbc.log
Database    = postgres
Servername  = 192.168.1.6
UserName    = postgres
Password    =
Port        = 5433
ReadOnly         = Yes
RowVersioning    = No
ShowSystemTables = No
ShowOidColumn    = No
FakeOidIndex     = No
ConnSettings     =
EOF

测试odbc

isql -v pg12

在这里插入图片描述

测试CONNECT

create database postgres
use postgres;
CREATE TABLE iris (
  sepal_length double(12,2) NULL,
  sepal_width double(12,2) NULL,
  petal_length double(12,2) NULL,
  petal_width double(12,2) NULL,
  species varchar(20) NULL
)ENGINE=CONNECT TABLE_TYPE=ODBC tabname='mysql.iris'
CONNECTION='DSN=pg12' 
;
select * from iris limit 10;

在这里插入图片描述

mysql> show create table postgres.iris;
>>返回
CREATE TABLE `iris` (
`sepal_length` float DEFAULT NULL,
`sepal_width` float DEFAULT NULL,
`petal_length` float DEFAULT NULL,
`petal_width` float DEFAULT NULL,
`species` varchar(20) DEFAULT NULL
) ENGINE=CONNECT DEFAULT CHARSET=latin1 
CONNECTION='DSN=pg12' 
`TABLE_TYPE`=ODBC `tabname`='mysql.iris'

成功。

参考

https://mariadb.com/kb/en/connect/

https://mariadb.com/kb/en/connect-odbc-table-type-accessing-tables-from-another-dbms

https://odbc.postgresql.org/

参考连接 :

MySQL如何访问Postgres :https://mp.weixin.qq.com/s/XSRh1IKgBXz5QxShRtr0Nw

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_40907977/article/details/115551300
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢