使用O2OA二次开发搭建企业办公平台(三)平台部署篇:使用外部数据库(Mysql)

原创
2018/09/27 11:02
阅读数 1.8W

本博客为O2OA系列教程、O2OA使用手册,教程目录和各章节天梯将在连载完后更新。

使用O2OA二次开发搭建企业办公平台(一)平台部署篇:平台下载和部署

使用O2OA二次开发搭建企业办公平台(二)平台部署篇:端口冲突和服务器端口配置

使用O2OA二次开发搭建企业办公平台(三)平台部署篇:使用外部数据库

使用O2OA二次开发搭建企业办公平台(四)平台部署篇:用户密码设置

使用O2OA二次开发搭建企业办公平台(五)平台部署篇:连接O2云使用APP

使用O2OA二次开发搭建企业办公平台(六)平台部署篇:定制自己的APP

使用O2OA二次开发搭建企业办公平台(七)平台部署篇:服务器备份和数据导入导出

使用O2OA二次开发搭建企业办公平台(八)组织管理篇:创建组织和个人信息

使用O2OA二次开发搭建企业办公平台(九)组织管理篇:组织职务的创建和使用

使用O2OA二次开发搭建企业办公平台(十)组织管理篇:组织管理者设定

使用O2OA二次开发搭建企业办公平台(十一)组织管理篇:关于系统角色管理

使用O2OA二次开发搭建企业办公平台(十二)流程开发篇:报销审批流程需求和应用创建

使用O2OA二次开发搭建企业办公平台(十三)流程开发篇:报销审批流程表单开发

使用O2OA二次开发搭建企业办公平台(十四)流程开发篇:使用数据字典进行报销类型配置

使用O2OA二次开发搭建企业办公平台(十五)流程开发篇:创建报销审批流程

使用O2OA二次开发搭建企业办公平台(十六)信息开发篇:信息栏目和分类的创建及权限的设置

使用O2OA二次开发搭建企业办公平台(十七)信息开发篇:信息发布的审批功能

使用O2OA二次开发搭建企业办公平台(十八)流程打印表单设置

 

 

本章题纲:

1、  数据库准备工作 - Mysql数据库安装

2、 O2OA配置修改:关闭内置数据库,开启和配置外部数据库信息

( 我们建议您在正式投入使用时,选择性能更高,更加安全稳定的商用级数据库,如Mysql8,Oracle12C,SQLServer 2012等等 )

 

一、数据库准备工作 - Mysql数据库安装​

下载和安装数据库的知识并不在本博客讲述的范围,请大家百度相关的技术文章完成Mysql数据库的安装。建议版本在Mysql5.7+。

Mysql各版本下载请参见:https://blog.csdn.net/kerafan/article/details/78001849

Mysql安装步骤请参见:http://www.cnblogs.com/sshoub/p/4321640.html

Mysql修改数据库连接数:https://blog.csdn.net/zhya910702/article/details/48372433  (建议最大连接数设置为1000)

 

二、O2OA配置修改​

1、关闭内置数据库

     配置文件路径:o2server/config/node_127.0.0.1.json

     如果没有该文件,请从目录o2server/config/sample/   (或者o2server/configSample目录) 中复制node_127.0.0.1.json文件到o2server/config目录下。

{
  "enable": true,
  "port":null,
  "sslEnable":false,
  "logLevel":"info",
  "isPrimaryCenter": true,
  "nodeAgentEnable": true,
  "application": {
    "enable": true,
    "port": null,
    "sslEnable": false,
    "proxyHost": "",
    "proxyPort": null,
    "forceRedeploy": true,
    "scanInterval":5,
    "includes":[],
    "excludes":[]
  },
  "web": {
    "enable": true,
    "port": null,
    "sslEnable": false,
    "proxyHost": "",
    "proxyPort": null,
    "forceRedeploy": true
  },
  "storage": {
    "enable": true,
    "port": null,
    "sslEnable": false,
    "name" : ""
  },
  "data": {                                                   #内置数据库相关配置,可以修改端口以及是否启用
    "enable": true,                                      #修改enable的值为false
    
"tcpPort": null,
    "webPort": null,
    "includes": [],
    "excludes": []

  },

  "dumpData":{
    "cron" : "0 0 21 * * ?",
    "size" : 14
  },
  "dumpStorage":{
    "cron" : "0 0 21 * * ?",
    "size" : 14
  }
}

 

2、开启和配置外部数据库信息

     配置文件路径:o2server/config/externalDataSources.json

     如果没有该文件,请从目录o2server/config/sample/  (或者o2server/configSample目录) 中复制externalDataSources.json文件到o2server/config目录下。

     文件的信息如下图:

[
    {
        "url" : "jdbc:db2://127.0.0.1:50000/X01",
        "username" : "db2admin",
        "password" :"password",
        "includes": [],
        "excludes": [],
        "enable" : false
    }

]

     将其中的url、username、password以及enable信息修改为上述Mysql的相关信息,如:

[
    {
        "url":"jdbc:mysql://127.0.0.1:3306/X?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC",
        "username" : "root",
        "password" :"password",

        "includes": [],
        "excludes": [],
        "enable" : true
    }
]

     URL参数说明如下:
     useUnicode是否使用Unicode字符集,如果参数characterEncoding设置为gb2312或gbk,本参数值必须设置为true false 1.1g 
     characterEncoding: 当useUnicode设置为true时,指定字符编码。比如可设置为gb2312或gbk false 1.1g 
     autoReconnect: 当数据库连接异常中断时,是否自动重新连接? false 1.1 
     autoReconnectForPools: 是否使用针对数据库连接池的重连策略 false 3.1.3 
     failOverReadOnly: 自动重连成功后,连接是否设置为只读? true 3.0.12 
     maxReconnects: autoReconnect设置为true时,重试连接的次数 3 1.1 
     initialTimeout: autoReconnect设置为true时,两次重连之间的时间间隔,单位:秒 2 1.1 
     connectTimeout: 和数据库服务器建立socket连接时的超时,单位:毫秒。 0表示永不超时,适用于JDK 1.4及更高版本 0 3.0.1 
     socketTimeout: socket操作(读写)超时,单位:毫秒。 0表示永不超时 0 3.0.1 

 

注意:

数据库连接URL中的数据 X01 是需要预选创建的,O2Server会自动创建数据表,但不会自动创建数据库。

设置完成后,重启o2server即可。

展开阅读全文
打赏
3
1 收藏
分享
加载中
您好,我按照文档配置了mysql数据库,但是启动服务器的时候报了这个错误,请问怎么解决?
java.lang.Exception: get entityManager for class com.x.organization.core.entity.Role error.
at com.x.base.core.container.factory.EntityManagerContainerFactory.createEntityManager(EntityManagerContainerFactory.java:109)
at com.x.base.core.container.EntityManagerContainerBasic.get(EntityManagerContainerBasic.java:36)
at com.x.program.center.Context.checkDefaultRole(Context.java:242)
at com.x.program.center.Context.concrete(Context.java:174)
at com.x.program.center.ApplicationServletContextListener.contextInitialized(ApplicationServletContextListener.java:13)
at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:930)
at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:553)
at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:889)
11/18 16:07
回复
举报
建议您到社区提个问题,并且上传完成的日志文件,我们的技术人员会分析的。
11/18 16:16
回复
举报
好的
11/18 16:24
回复
举报
您好,我使用瀚高数据库,根据咱的博客添加了驱动jar包,修改了拓展包注册文件manifest.cfg,配置瀚高数据源后启动报错:Exception in thread "main" java.lang.Exception: can not get driverClassName of url: jdbc:highgo://127.0.0.1:5866/o2.
at com.x.base.core.container.factory.SlicePropertiesBuilder.driverClassNameOfUrl(SlicePropertiesBuilder.java:85)
at com.x.base.core.project.config.ExternalDataSource.getDriverClassName(ExternalDataSource.java:85)
at com.x.server.console.ResourceFactory.external_druid_c3p0(ResourceFactory.java:98)
at com.x.server.console.ResourceFactory.external(ResourceFactory.java:88)
at com.x.server.console.ResourceFactory.bind(ResourceFactory.java:66)
at com.x.server.console.Main.init(Main.java:114)
at com.x.server.console.Main.main(Main.java:119)
10/09 14:47
回复
举报
感谢您的关注和支持。您使用瀚高什么版本?建议您 到社区提个问题,附上您的报错信息和驱动包,技术人员测试后会回复您 。
10/09 14:51
回复
举报
你好,请问使用mysql数据库以后,有表名的说明文档吗,比如用户名之类的,你们该不会写在了配置文件里面吧?
09/25 15:22
回复
举报
不在配置文件里,目前是在源码里,等最新版本发布之后,会在接口文档里展示出来。您可以关注一下。
09/27 10:03
回复
举报
按照教程,将externalDataSources.json与node_127.0.0.1.json文件放在了新创建的config文件夹下,也改了需要改的地方,"url":"jdbc:mysql://127.0.0.1:3306/OAOA?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=GMT",
    "username" :"root",
    "password" :"fdauto2020",
但是连接的时候还是报错了, Access denied for user 'root'@'localhost'
09/24 14:26
回复
举报
数据库OAOA我建好了,也能使用navicat连接了,所以不知道问题出在哪里,希望作者指导一下
09/24 14:28
回复
举报
navicat 你是在本地连接还是远程,看上去应该是root用户不允许使用本地连接,建议您百度一下相关的说法,应该可以解决的。 谢谢你对O2OA感兴趣。
09/25 10:42
回复
举报
远程的,我是部署在linux上面的,查了一下状态码,08001,好像是驱动的问题,然后找到了你们驱动的jar包,你们驱动是8.0的啊,我数据库用的是5.7的,我如果直接把驱动包换成5.7的可以吗,还是需要我linux上面安装mysql 8.0的版本才行,目前数据库版本5.7连不上
09/25 11:46
回复
举报
下午解决了,我给服务器装了8.0版本的mysql,之前装的5.7版本导致驱动不可用,希望你们能够修改一下你们的文档,谢谢
09/25 14:28
回复
举报
Access denied for user 'root'@'localhost' 建议您百度一下,有解释的。此问题的情况比较多。 https://blog.csdn.net/u012730299/article/details/51840416
09/27 10:04
回复
举报
我已经改好了,主要问题在于状态码08001,驱动的原因,你们的驱动是8.0的,而我之前装的是5.7版本的数据库,后来改成8.0版本的数据库就可以了,所以我希望你们原文能够修改一下,你们的原文并没有说到要mysql8.0
09/27 16:52
回复
举报
关闭了内置数据库,配好了外部数据库url,重新启动没有见数据库表,启动也没有任何异常,数据库是mysql
08/12 15:42
回复
举报
没有报错应该就是正常的,您使用上有错误提示吗?数据表会在使用过程中创建,系统会在第一次访问某张表的数据时创建数据表。
08/13 16:52
回复
举报
我使用达梦数据库,表自动创建好后,登陆系统后启动,访问报错,有警告和报错。报错是德鲁伊合并sql 的时候出问题了
07/02 17:59
回复
举报
把报错的内容贴出来看看,或者到官网社区去提个问题,应该是可以解决的。O2OA已经和达梦,金仓和神通数据库互认了。
08/13 16:50
回复
举报
换成mysql数据库以后,启动的时候,他提示mysql的驱动不对,是8.0以上的。换了5.1.48的驱动,再开,虽然不报错了,但是打开127.0.0.1的时候提示
<指定的站点不存在:b82d7669-85d6-4c10-8151-c4d1f18ba6ef. > 这是为什么呢。
04/17 16:59
回复
举报
CMD里一直提示: WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
04/17 17:02
回复
举报
在mysql连接串上添加一个参数:&useSSL=false
04/18 20:17
回复
举报
还是会报 ERROR [b0d8cfef-bfe7-45f2-a63f-d417240405de] com.x.portal.assemble.surface.jaxrs.portal.PortalAction - 指定的站点不存在:b82d7669-85d6-4c10-8151-c4d1f18ba6ef. > person:anonymous, method:GET, request:http://127.0.0.1:20020/x_portal_assemble_surface/jaxrs/portal/b82d7669-85d6-4c10-8151-c4d1f18ba6ef, remote host:127.0.0.1 address:127.0.0.1, head:Origin:http://127.0.0.1 的错误。。不知道是哪里的问题呢。。
04/20 09:35
回复
举报
跟自己建的数据库里没有数据有关吗?我看自己建的数据库只会自己建表,不会加数据,ptl.portal表里没有数据,是因为这个原因吗
04/20 09:47
回复
举报
应该和这个没有关系。您是直接官网下载的服务器吗?感觉好像指定了某个门户页面作为服务器登录页。
04/20 11:11
回复
举报
D:\o2server\servers\webServer\x_desktop\res\config\config.js删除或者剪切到其他地方后,重启服务器试试看
04/20 11:13
回复
举报
回复 @O2OA企业信息化平台 : 问题解决了,确实和门户网站有关。设置里有个启用门户网站作为主页,然后config文件夹里生成了一个portal.json。但是因为应用市场里并没有门户网站模板下载,不知道里面的那串乱码是怎么来的,可能是动其他的某个地方不小心生成的。因为代码里是用mysql8.0之前的驱动注册的,后台也一直报错,所以一直以为是数据库的问题,好像mysql8.0.15也能用老驱动注册,只不过会一直报警告。问题找到原因了还是多谢解答!
04/20 13:46
回复
举报
回复 @亦菲大魔王 : 驱动是可以在o2server/commons/ext里进行替换的,把原来的驱动包删除,添加新的驱动jar包即可。记得要在manifest.cfg里把相应的jar包名称的注册改一下。
04/21 11:21
回复
举报
根据说明,设置好了orcal的连接,连接上了,而且自动建了很多表,就是之前配置的人员和部门没了,重新配。。。。。。
2019/12/20 16:22
回复
举报
你是先连的Oracle还是先创建的人员和部门?
04/18 20:18
回复
举报
已经解决,配置好外部数据库,在start.bat进行dump data password

password 为xadmin的登入密码
2019/12/18 14:44
回复
举报
厉害了!牛的。
04/18 20:18
回复
举报
我也改不了,现在都登不进去
2019/12/18 14:17
回复
举报
更多评论
打赏
45 评论
1 收藏
3
分享
返回顶部
顶部