今天尝试在windows下部署了一下达梦的DEM,出现了dem管理平台初始密码无法登录的问题,特此记录下
解决经过。
部署环境:windows10 后台数据库:dm8
部署步骤:
1.创建dm8实例作为后台数据库,修改dm.ini 并启动
|
2.使用disql工具连接后台数据库并执行初始化脚本dem_init.sql
conn SYSDBA@localhost:5238
start D:\program\dm8\data2\DAMENG\dem_init.sql
3.使用压缩工具打开 dem.war,在文件 WEB-INF/db.xml
中配置 ip、port、用户名、密码、连接池大小,SSL 登录信息等。(本次实验没有加密与后台数据库的连接)
<?xml version="1.0" encoding="UTF-8"?>
<ConnectPool>
<Server>localhost</Server>
<Port>5238</Port>
<User>SYSDBA</User>
<Password>SYSDBA</Password>
<InitPoolSize>5</InitPoolSize>
<CorePoolSize>10</CorePoolSize>
<MaxPoolSize>50</MaxPoolSize>
<KeepAliveTime>60</KeepAliveTime>
<DbDriver></DbDriver>
<DbTestStatement>select 1</DbTestStatement>
##<SSLDir>../sslDir/client_ssl/SYSDBA</SSLDir>
##<SSLPassword></SSLPassword>
</ConnectPool>
4.复制修改后的 dem.war 到 tomcat 的 webapps 目录下。在 conf/server.xml 中,<Connector port="8080" protocol="HTTP/1.1"... 追加属性字段 maxPostSize="-1";
<Connector port="8080" protocol="HTTP/1.1"
maxPostSize="-1"
connectionTimeout="20000"
redirectPort="8443" />
5.在 bin/catalina.bat
中调整如下参数:
set java_opts= -server -Xms40m -Xmx1024m -XX:MaxPermSize=512m -Djava.library.path=D:\program\dm8\bin;
6.启动tomcat,访问localhost:8080/dem/,输入用户名admin,密码888888,无法登录
7.此时可用dm8管理工具连接后台数据库,查看dem后台数据:
select * from dem.admin_user;//看到的是空表。
insert into dem.admin_user (id,login_name,password,role_id) values (9,'tutu','888888',7);//此时我们手动增加了一个用户tutu,密码888888,具有高级用户权限。
此时查找admin_user用户是存在的。
再次用tutu用户登录或者admin用户登录仍然失败。
==================================================================
经查找手册和调试,发现是字符集问题。dem_init.sql脚本编码为UTF-8,而我们本机环境默认编码为GBK,DISQL默认编码也是GBK,导致初始化后台数据库的dem数据时用户名密码异常。重新初始化后台数据库以及执行dem_init.sql脚本之后可正常登录DEM管理平台。
====================================================================
说明:windows默认的编码是GBK,我们在shell中可以使用chcp [nnn]来临时修改编码。
936 中国 - 简体中文(GB2312)
65001 Unicode (UTF-8)
52936 简体中文(HZ)
437 美国英语
在win10下,如果要永久修改windows的默认字符集为UTF8,可以:设置->日期和时间->管理语言设置->更改系统区域设置->勾选“Beta版:使用Unicode UTF-8 提供全球语言支持”
========================== =====================
在创建数据库实例时,字符集是可选的:
CHARSET/UNICODE_FLAG 字符集 (0),可选值: 0[GB18030], 1[UTF-8], 2[EUC-KR]
数据库实例初始化以后字符集无法修改。
===========================================================
使用disql执行脚本时,可以设置set CHAR_CODE UTF8
更多参考内容请访问达梦云适配中心