Informatica连接SingleStore ODBC报错:找不到DataDirect驱动管理器消息文件
问题:Informatica连接SingleStore ODBC报WRT_8001错误
- 环境:自托管SingleStore 8.0.5,SingleStore ODBC驱动1.1.1,CentOS系统
- 现象:isql可正常连接SingleStore,但Informatica通过ODBC连接时触发WRT_8001错误,提示
[DataDirect][ODBC lib] Driver Manager Message file not found. Please check for the value of InstallDir in your odbc.ini. - 已配置:
odbc.ini位于/etc/odbc.ini,已在.bash_profile中设置ODBCINI=/etc/odbc.ini环境变量
相关日志与配置
isql成功连接日志
[abc@rnd-2 ~]$ isql SingleStore-server +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL> ^C
Informatica错误信息
Message Code: WRT_8001 Message: Error connecting to database... WRT_8001 [Session s_test Username dev DB Error -1 [DataDirect][ODBC lib] Driver Manager Message file not found. Please check for the value of InstallDir in your odbc.ini. Database driver error... Function Name : Connect Database driver error... Function Name : Connect Database Error: Failed to connect to database using user [dev] and connection string [SingleStore-server].] Message Code: WRT_8001 Message: Error connecting to database... WRT_8001 [Session s_test Username dev DB Error -1 [DataDirect][ODBC lib] Driver Manager Message file not found. Please check for the value of InstallDir in your odbc.ini. Database driver error... Function Name : Connect Database driver error... Function Name : Connect Database Error: Failed to connect to database using user [dev] and connection string [SingleStore-server].]
odbc.ini配置
[SingleStore_server] Description=SingleStore server Driver=/home/abc/singlestore-connector-odbc-1.1.1-centos7-amd64/libssodbca.so SERVER=<你的服务器地址> USER=<用户名> PASSWORD=<密码> DATABASE=<数据库名> PORT=<端口>
.bash_profile配置
# .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATH export ODBCINI=/etc/odbc.ini
解决方案
1. 确保Informatica进程能读取ODBC环境变量
isql在当前用户shell下运行,可读取.bash_profile的配置,但Informatica服务可能以其他用户(如informatica)运行,或未加载当前用户环境:
- 切换到Informatica运行用户:
su - informatica,执行echo $ODBCINI确认变量是否生效。若未生效,在该用户的.bash_profile中添加export ODBCINI=/etc/odbc.ini,执行source ~/.bash_profile后重启Informatica服务。 - 若Informatica用systemd管理,编辑服务配置文件(如
/etc/systemd/system/informatica.service),在[Service]段添加Environment="ODBCINI=/etc/odbc.ini",再执行systemctl daemon-reload和systemctl restart informatica.service。
2. 给odbc.ini添加InstallDir配置
错误提示明确指向InstallDir,需在[SingleStore_server]段添加驱动的根目录:
[SingleStore_server] Description=SingleStore server Driver=/home/abc/singlestore-connector-odbc-1.1.1-centos7-amd64/libssodbca.so InstallDir=/home/abc/singlestore-connector-odbc-1.1.1-centos7-amd64 SERVER=<你的服务器地址> USER=<用户名> PASSWORD=<密码> DATABASE=<数据库名> PORT=<端口>
注意:InstallDir是SingleStore ODBC驱动的根目录(包含lib、share等子目录),需确保Informatica运行用户对该目录有可读权限。
3. 检查驱动依赖与权限
- 执行
ldd /home/abc/singlestore-connector-odbc-1.1.1-centos7-amd64/libssodbca.so,确认所有依赖库都已安装,若有缺失需补充对应系统包。 - 授权确保Informatica能读取相关文件:
chmod 644 /etc/odbc.ini chmod -R 755 /home/abc/singlestore-connector-odbc-1.1.1-centos7-amd64/
4. 对齐Informatica的ODBC管理器配置
Informatica默认使用DataDirect ODBC管理器,而isql用的是系统unixODBC,两者配置不兼容:
- 找到Informatica自带的
odbc.ini(通常在$INFA_HOME/ODBC7.1/odbc.ini),添加和/etc/odbc.ini一致的SingleStore DSN配置,并设置InstallDir。 - 在Informatica环境配置中添加:
确保Informatica加载自身的ODBC管理器。export ODBCINI=$INFA_HOME/ODBC7.1/odbc.ini export LD_LIBRARY_PATH=$INFA_HOME/ODBC7.1/lib:$LD_LIBRARY_PATH
内容的提问来源于stack exchange,提问作者Divyank
相关产品推荐
相关产品推荐

