ITPub博客

首页 > 数据库 > 国内数据库 > 熟能生巧丨通过ODBC连接 MogDB 数据库

熟能生巧丨通过ODBC连接 MogDB 数据库

原创 国内数据库 作者:云和恩墨 时间:2024-08-12 15:40:09 0 删除 编辑

适用范围

MogDB 5.0.X

问题概述

在运维过程中总是有些问题需要和应用维护人员配合来解决或定位某些性能问题根因,因此要想使工作配合的更加默契,需要对应用连接数据库的方式及数据操作方法有一定了解,所以有了以下内容。

解决方案

ODBC( Open Database Connectivity,开放数据库连接)是一种用于访问不同数据库管理系统( DBMS)的标准应用程序编程接口( API)。
它提供了一种统一的方式,使得应用程序能够以相同的方式连接和操作各种不同类型的数据库,而无需为每种数据库编写特定的驱动程序代码,这不仅增加了应用程序的可移植性和灵活性,还减少了开发和维护的成本。

步骤 1. unixODBC软件包下载并解压

在 https://sourceforge.net/projects/unixodbc/files/unixODBc 下载对应的 unixODBC,并将上传到目录 /opt/odbc。 本实验 使 用 unixODBC 2.3.5。

[root@app2 odbc]# pwd

/opt/odbc
[root@app2 odbc]# ll
total 1596
-rw-r--r-- 1 root root 1633390 Jul 26 17:31 unixODBC-2.3.5.tar.gz

步骤 2. 编译ODBC

修改 configure文件 (如果不存在,那么请修改 configure.ac),找到 LIB_VERSION将它的值修改为 "1:0:0",这样将编译出 *.so.1的动态库,与 psqlodbcw.so的依赖关系相同。

[root@app2 odbc]# tar -xf unixODBC-2.3.5.tar.gz

[root@app2 odbc]# cd unixODBC-2.3.5/
[root@app2 unixODBC-2.3.5]# vi configure
[root@app2 unixODBC-2.3.5]# grep LIB_VERSION  configure
LIB_VERSION
LIB_VERSION="1:0:0"
[root@app2 unixODBC-2.3.5]# ./configure --enable-gui=no

注:如果要在 ARM服务器上编译,请追加一个 configure参数: – build=aarch64-unknown-linux-gnu

make

make install

步骤 3. 上传MogDB-ODBC-5.0.0.2-CentOS-x86_64.tar.gz文件并解压

下载地址: https://www.mogdb.io/downloads/odbc/all

[root@app2 odbc]# pwd

/opt/odbc
[root@app2 odbc]# tar -xf MogDB-ODBC-5.0.0.2-CentOS-x86_64.tar.gz
[root@app2 odbc]# ll
total 10612
drwxr-xr-x  2 root       root          4096 Mar 16 17:05 lib
-rw-r--r--  1 root       root       9217501 Jul 26 17:50 MogDB-ODBC-5.0.0.2-CentOS-x86_64.tar.gz
drwxr-xr-x  3 root       root          4096 Mar 16 17:05 odbc
drwxrwxr-x 20 lighthouse lighthouse    4096 Jul 26 17:45 unixODBC-2.3.5
-rw-r--r--  1 root       root       1633390 Jul 26 17:31 unixODBC-2.3.5.tar.gz

步骤 4. 拷贝odbc目录下的文件到/usr/local/lib

将 MogDB-ODBC-5.0.0.2文件解压后会得到两个文件夹 :lib与 odbc,在 odbc文件夹中还会有一个 lib文件夹。 odbc/lib中会有“ psqlodbca.la”“ psqlodbca.so”“ psqlodbcw.la”和“ psqlodbcw.so”四个文件,将这四个文件拷贝到“ /usr/local/lib”目录下。

[root@app2 odbc]# cd odbc/lib/

[root@app2 lib]# ll
total 1512
-rwxr-xr-x 1 root root   1287 Mar 16 17:05 psqlodbca.la
-rwxr-xr-x 1 root root 744744 Mar 16 17:05 psqlodbca.so
-rwxr-xr-x 1 root root   1287 Mar 16 17:05 psqlodbcw.la
-rwxr-xr-x 1 root root 791472 Mar 16 17:05 psqlodbcw.so
[root@app2 lib]# pwd
/opt/odbc/odbc/lib
[root@app2 lib]# cp ./* usr/local/lib
lib/     lib64/   libexec/
[root@app2 lib]# cp ./* usr/local/lib/

将 MogDB-ODBC-5.0.0.2文件解压后,把 lib目录中的库拷贝到“ /usr/local/lib”目录下。

[root@app2 lib]# cp * usr/local/lib/

cp: overwrite ‘/usr/local/lib/libodbccr.la’? y
cp: overwrite ‘/usr/local/lib/libodbccr.so’? y
cp: overwrite ‘/usr/local/lib/libodbcinst.la’? y
cp: overwrite ‘/usr/local/lib/libodbcinst.so’? y
cp: overwrite ‘/usr/local/lib/libodbc.la’? y
cp: overwrite ‘/usr/local/lib/libodbc.so’? y

步骤 5. 配置ODBC驱动文件

在 /usr/local/etc/odbcinst.ini文件中追加以下内容。

[GaussMPP]

Driver64=/usr/local/lib/psqlodbcw.so
setup=/usr/local/lib/psqlodbcw.so

  • [DriverName]:驱动器名称,对应数据源 DSN中的驱动名。

  • Driver64:驱动动态库的路径。

  • Setup:驱动安装路径,与 Driver64中动态库的路径一致。

步骤 6. 配置数据源文件

在 /usr/local/etc/odbc.ini文件中追加以下内容:

[MPPODBC]

Driver=MogDB
Servername=127.0.0.1
Database=demo
Username=dbuser
Password=MogDB@123456
Port=36000
Sslmode=allow

  • Servername:数据库 Server IP。

  • Driver:驱动名,对应 odbcinst.ini中的 DriverName。

  • Database:连接数据库名。

  • Username:数据库用户名。

  • Password:数据库用户密码。

  • Port:数据库侦听端口

步骤 7. 配置数据库服务器

以操作系统用户 omm登录数据库主节点。
执行如下命令增加对外提供服务的网卡 IP或者主机名 (英文逗号分隔 ),其中 NodeName为当前节点名称。

gs_guc reload -N NodeName -l all -c"listen addresses="*"


执行如下命令,在数据库主节点配置文件中增加一条认证规则:

gs_guc reload -N all -l all -h "host all all 0.0.0.0/0 sha256“


重启 MogDB:

gs_ctl stop

gs_ctl start

步骤 8. 在客户端配置环境变量


[root@app2 ~]# vi ./.bashrc


在配置文件中追加以下内容:

export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH

export ODBCSYSINI=/usr/local/etc
export ODBCINI=/usr/local/etc/odbc.ini

执行如下命令使设置生效:

source ~/.bashrc


步骤 9. 测试数据源配置

安装后 /usr/bin下面会存放生成的二进制可执行文件 isql,执行 isql -v MogDBODBC(数据源名称 )命令。
如果显示如下信息,表明配置正确,连接成功:

[root@app2 etc]# isql -v MogDBODBC

+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL>

执行命令后如果报以下错误,需安装 RPM解决依赖:

[root@app2 ~]# isql -v MogDBODBC

isql: error while loading shared libraries: libltdl.so.7: cannot open shared object file: No such file or directory

yum  install libtool-ltdl

【参考文档】

https://docs.mogdb.io/zh/mogdb/v5.0/3-configuring-a-data-source-in-the-linux-os


关于作者

贾勇智,云和恩墨技术顾问,具有银行、税务、电力等行业丰富的数据库运维经验,擅长数据库自动化运维工具开发,热衷技术分享,拥有OCM / PGCM / KCP认证,目前专注于 openGauss、MogDB、PostgreSQL 数据库的运维工作。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29715045/viewspace-3024807/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-06-19

  • 博文量
    183
  • 访问量
    346693