前提
在win11新安装客户机,配置远程连接DB2,按照以下步骤执行:
1、对远程节点进行编目
CATALOG TCPIP NODE local_node_name(设置一个节点名)REMOTE IP(服务端ip)SERVER service_name|posr_number (服务名称或者端口号)
2、对远程节点进行数据库编目
CATALOG DATABASE remote_db_name(服务端数据库名) AS local_db_name(自定义数据库别名) AT NODE local_node_name(第一步设置的节点名)
3、刷新,查看数据库目录
TERMINATE
LIST DB DIRECTORY
到此都没有问题
4、连接远程数据库服务
CONNECT TO local_db_name(第二步设置的数据库别名) USER userid (用户)USING password (密码)
问题
出现以下错误
SQL0332N 不支持从源代码页 "1114" 到目标代码页 "UNKNOWN" 的字符转换。
SQLSTATE=57017
排查原因
提示是代码页冲突,无法转换,考虑需要更换客户机的字符集与服务器保持一致。
1、查看客户机字符集代码
db2set.exe -all //win11
客户机字符集编码为1114
2、查看服务端字符集代码
SELECT NAME,value FROM SYSIBMADM.DBCFG WHERE NAME LIKE '%code%';
服务端的为1392
解决办法
1、设置客户机的字符集代码,刷新生效(注意:windows需要用管理员身份运行db2cmd,以及执行的目录)
D:\db2\IBM\SQLLIB\BIN>db2set db2codepage=1392
D:\db2\IBM\SQLLIB\BIN> db2 terminate
DB20000I TERMINATE 命令成功完成。
D:\db2\IBM\SQLLIB\BIN>db2set.exe -all
[e] DB2PATH=D:\db2\IBM\SQLLIB
[i] DB2INSTPROF=C:\ProgramData\IBM\DB2\DB2COPY1
[i] DB2CODEPAGE=1392
[g] DB2_EXTSECURITY=NO
[g] DB2_COMMON_APP_DATA_PATH=C:\ProgramData
[g] DB2SYSTEM=FRANKE
[g] DB2PATH=D:\db2\IBM\SQLLIB
[g] DB2INSTDEF=DB2
修改完成,重新连接就可以啦~
记录一下,一起学习db2!