何信哲 发表于 2017-09-30 16:52

迁移informix数据库后无法连接

将一个aix 下的informix 7的库dbexport\dbimport 到了Linux下的ifnormix 11.7。
本地dbaccess - -   ==>connect to "db_name@db" user "user"; 是可以连接并查询到数据。
当使用原库的软件(通过ODBC)进行登录访问,但无法登录,在ODBC下test connect,显示如下错误:
Database locale information mismatch
然后查看该ODBC的Client Local 与 Database Locale为en_US.CP1252
而在数据库本地查询数据库字符集:
dbaccess sysmaster
select * from sysdbslocale
查询显示为:en_us.819
然后linux的环境变量并未设置DB_LOCALE等与字符集相关的变量。

请问应该怎么处理informix服务器,才能实现与客户端的连接?

yunzhongyue 发表于 2017-10-09 10:52

本帖最后由 yunzhongyue 于 2017-10-11 11:53 编辑

回复 1# 何信哲


何信哲 发表于 2017-10-09 14:05

回复 2# yunzhongyue

您好,您发送的信息好像我无法查看到。
能再讲解一下吗?

大梦 发表于 2017-10-09 14:27

看下以前AIX上的是什么?我记得默认的是DB_LOCALE=en_us.8859-1

liaosnet 发表于 2017-10-10 09:48

回复 1# 何信哲

在用户的环境变量中增加DB_LOCALE=zh_CN.gbk CLIENT_LOCALE=zh_CN.gbk,然后重新dbimport这个库。

何信哲 发表于 2017-10-16 16:56

回复 4# 大梦

你好。
我查看了一下数据库的那个用户的.profile中的DB_LOCALE,是en_US.CP1252
然后,通过dbaccess sysmaster => select * from dbslocale; 查看发现需要迁移的库是对应的为en_US.1252。

请问将DB_LOCALE设置为en_US.CP1252,再次dbimport,能否解决这个问题?

何信哲 发表于 2017-10-16 17:00

因为国庆和一些项目开发的原因,这个迁移稍微搁置了一段时间。我根据各位好心网友的建议,通过如下的方式查看了原库的字符集。
查看了一下数据库的那个用户的.profile中的DB_LOCALE,是en_US.CP1252
然后,通过dbaccess sysmaster => select * from sysdbslocale; 查看需要迁移的库是对应的为en_US.1252。
请问在新的Linux下的informix 11.70 服务器应该做哪些修改,可以满足客户端的连接要求?
由于是历史库,也不方便更改客户端设置,尽量修改服务器端。

新人的问题,麻烦各位网友了。谢谢。

何信哲 发表于 2017-10-27 08:46

问题解决了,其实将设为与客户端相同的编码即可。
结贴,谢谢各位。
页: [1]
查看完整版本: 迁移informix数据库后无法连接