还是昨天测试postgresql的有关Mirroring Controller的功能时出的问题(真TM是个坑)。

首先说下环境:

操作系统平台:RHEL6 x86_64
unixODBC版本:2.3.1

在使用unixODBC连接postgresql数据库的时候报错:

The driver reported the following diagnostics whilst running [SQLDriverConnect]

IM002:1:140733193388032:[unixODBC][Driver Manager]Data source name not found, and no default driver specified

Failed to connect

非常费解,查看网上的资料,弄了好一会才搞清楚。

首先根据错误消息搜索:

http://www.easysoft.com/developer/interfaces/odbc/sqlstate_status_return_codes.html

查明错误原因是ODBC数据库连接字符串没找到或者ODBC默认的驱动没有装。

发生错误时我的odbc.ini配置如下

[DB3]
Description = SymfowareServer
Driver = SymfoV12
Database = postgres
Servername = {primary,standby}
UserName = postgres
Password = postgres
Port = {26500,26501}
TargetServer = primary
SSLMode = verify-full
SSLServerCertCN=Common
ReadOnly = 0 [DB4]
Description = SymfowareServer
Driver = SymfoV12
Database = postgres
Servername = {standby,primary}
UserName = postgres
Password = postgres
Port = {26501,26500}
TargetServer = prefer_standby
SSLMode = verify-full
SSLServerCertCN=Common
ReadOnly = 0

odbcinst.ini配置如下:

[SymfoV12]
Description = ODBC for Symfoware Open V12.1.1
#Driver = /opt/symfoclient64/odbc/lib/psqlodbcw.so
# Setup = /usr/lib/libodbcpsqlS.so
Driver64 = /opt/symfoclient64/odbc/lib/psqlodbcw.so
Setup64 = /usr/lib64/libodbcpsqlS.so
FileUsage = 1
Threading = 2

unixODBC自带测试链接的命令

isql -v DB3

运行后,提示:

[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified

[ISQL]ERROR: Could not SQLConnect

我先检查了下postgresql的驱动psqlodbc有没有安装...

居然没有安装!!!

于是安装上psqlodbc,此时最新的版本是psqlodbc-09.05.0400

#tar zxvf psqlodbc-09.05.0400.tar.gz
#cd psqlodbc-09.05.0400
#./configure --with-unixodbc --with-libpq=/usr/local/pgsql
#make
#make install

安装成功,默认驱动放在/usr/local/lib/psqlodbcw.so下。

安装完以后,继续测试,居然还报错!!!!

继续百度,参考下文:

http://china.ygw.blog.163.com/blog/static/687197462013418101335419/

找了半天,终于发现问题,原来是环境变量未正确配置,系统找不到配置文件。本来之前是正确的,后来我修改了unixODBC的目录名称,导致找不到了,通过执行odbcinst -j命令可以查看当前配置信息情况,以确认相关配置信息的路径是否正确。

我的配置如下:

unixODBC 2.3.1
DRIVERS............: /usr/local/etc/odbcinst.ini
SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini
FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

重新配置ODBCINI及ODBCSYSINI两个环境变量即可。

其中,ODBCINI设置为odbc.ini的文件路径全名,ODBCSYSINI配置为配置文件路径,参照我的配置内容如下:

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

再次使用isql测试:

isql -v DB3

一切OK。

有关unixODBC:Data source name not found, and no default driver specified的问题的更多相关文章

  1. 以Excel 作为Data Source,将data导入db

    将Excel作为数据源,将数据导入db,是SSIS的一个简单的应用,下图是示例Excel,数据列是code和name 第一部分,Excel中的数据类型是数值类型 1,使用SSDT创建一个package ...

  2. Data source rejected establishment of connection, message from server: "Too many connections"解决办法

    异常名称 //数据源拒绝从服务器建立连接.消息:"连接太多" com.MySQL.jdbc.exceptions.jdbc4.MySQLNonTransientConnection ...

  3. 不支持关键字“data source”

    网上大部分都是说data source之间需要插入一个空格或者都是一些低级的拼写错误造成的,但是我没有出现这些情况,是通过把data source改成server解决的,具体config里面的代码如下 ...

  4. excel 导入数据库 / SSIS 中 excel data source --64位excel 版本不支持-- solution

    当本地安装的excel(2013版) 是64-bit时:出现的以下两种错误 解决: 1. excel 导入数据库 , 如果文件是2007则会出现:“The 'Microsoft.ACE.OLEDB.1 ...

  5. [转] --- Error: “A field or property with the name was not found on the selected data source” get only on server

    Error: “A field or property with the name was not found on the selected data source” get only on ser ...

  6. 错误解决:SharePoint Designer 2010编辑后,出现数据源控件未能执行插入命令,data source control failed to execute the insert command

    打了SharePoint 2010 最新的SP 2的补丁,但是使用SharePoint Designer 2010 定义任何一个列表的“插入视图”时,总是出现标题那样的错误: 数据源控件未能执行插入命 ...

  7. 使用View为Data Source的Form开发要点

    (Data Source为View) 要点一:创建View的SQL语法 View的SQL里必须指定Form里唯一一个对其新增.修改.删除的基本表及其主键,其它表为辅助信息表,其字段仅用来在Form里显 ...

  8. DataTables warning : Requested unknown parameter '5' from the data source for row 0

    在该项目中我使用了jquery.dataTables.js来作为我的前端数据表格. 表格的官网地址:https://www.datatables.net/ 一.jsp部分代码片段如下: <tab ...

  9. Jquery DataTables warning : Requested unknown from the data source for row 0

    昨天在做 Jquery DataTables 的时候,遇到的一个问题,我使用MVC,在tables上加入了一个actionlink的href.但是在运行起来的时候,报错: DataTables war ...

随机推荐

  1. oracle误删数据的解决方法

    之前不小心误删了一条数据,索性我还记得id,通过select * from 表名 as of timestamp to_timestamp('2017-6-23 9:10:00','yyyy-mm-d ...

  2. ORA-01940:无法删除当前已链接的用户

    (1)查看用户的连接状况 select user name, sid, serial# from v$session; (2)找到要删除用户的sid,和serial,并删除 例如要删除用户nc633t ...

  3. ajax跨域请求解决方案 CORS和JSONP

    什么是跨域: 只要协议.域名.端口有任何一个不同,都会被当成不同的域.而由于浏览器的同源策略(同源策略:域名.协议.端口均相同),浏览器之间要隔离不同域的内容,禁止互相操作,不能执行其他网站的js.所 ...

  4. 轻量级的同步机制——volatile语义详解(可见性保证+禁止指令重排)

    目录 1.关于volatile 2.语义一:内存可见性 2.1 一个例子 2.2 java的内存模型(JMM) 2.3 happens-before规则 2.4 volatile解决内存可见性问题的原 ...

  5. yii2 源码分析1从入口开始

    我是在 backend 一步步打印的 很多地方我也是很模糊 .后来发现一位大神的文章(http://www.yiichina.com/tutorial/773) 参考文章自己动手开始写的 至于后来的 ...

  6. 面试题: java多线程 背1

    如果对什么是线程.什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内. 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现.说这个话其 ...

  7. ROS naviagtion analysis: costmap_2d--Costmap2DROS

    博客转载自:https://blog.csdn.net/u013158492/article/details/50485418 在上一篇文章中moveBase就有关于costmap_2d的使用: pl ...

  8. CMakefile for Cross-Platform Compling - 1

    cmake可以自动侦测目标系统,通常编译时候包含的文件和链接的库都不是本地的文件. Demo #toolchain cmake file SET(CMAKE_SYSTEM_NAME Linux) SE ...

  9. MySQL——explain性能分析的使用

    用法:explain sql语句: id:查询的序号. ref:进行连接查询时,表得连接关系.可以通过上图看出. select_type:select查询的类型,主要是区别普通查询和联合查询.子查询之 ...

  10. 一、office web apps 部署

    原文出处:http://www.cnblogs.com/yanweidie/p/4516164.html 原文出处:https://www.cnblogs.com/poissonnotes/p/323 ...