泛微MySQL数据库迁移
本案例需求是需要将数据库云服务器上迁移到另一台服务器上,操作系统均为WindowServer2022,数据均为MySQL8(不同数据库的导入导出我也没测试过,应该是需要模式转换的,比如sqlserver的语法和函数都和mysql的不一样,这种操作不太建议,不同操作系统倒是没什么关系,只要保证MySQL的大版本一致就可以)
一、导入导出数据库
- 关闭E9服务
在window系统中查找 服务,然后查找ResinE9
# 在Linux环境下依次执行一下命令可以关闭服务
cd /wearver/Resin/bin
./stopresin.sh
- 导出数据库
# 错误的导出方式,仅仅导出表和数据(但是这其实是用不了的)
mysqldump -u root -p123456 ecology> D:\ecology.sql
# 正确的导出方式(为了导出视图、存储过程和函数,你需要添加 --routines 和 --triggers 选项。如果你的数据库还包含事件,你可以添加 --events 选项。)
mysqldump -u root -p123456 --routines --triggers --events ecology > D:\ecology.sql
# 导入数据(导入前需要先创建好数据库,采用字符集utf8或者utf8mb3)
mysql -u root -p123456 new_ecology < D:\ecology.sql
或者通过navicat导入导出数据库(除了要导出 数据和结构还需要将视图、函数、事件、存储结构一起导出!)
二、配置MySQL
如果是新安装的MySQL就需要配置一个远程连接账户,接下来需要修改一些MySQL的配置e9才能正常使用。
- 找到MySQL的配置文件my.ini(控制面板-服务-右键MySQL服务–属性–可执行路径里有my.ini配置文件的路径(路径可以鼠标选中后拉))
- 将下面的参数加到my.ini的最后,重启数据库服务即可(修改前先备份,推荐使用文本编译工具去修改,记事本txt修改的方式编码变更容易导致配置文件失效)
character-set-server=utf8
log_bin_trust_function_creators=1
lower_case_table_names=1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
transaction_isolation=READ-COMMITTED
group_concat_max_len=102400
3.然后重启MySQL服务就可以了
三、配置Ecology9
- 需要修改 ecology/WEB-INF/prop/ 下weaver.properties 中数据库地址和账户密码
- 重启E9服务
# 如果是Linux环境
cd /wearver/Resin/bin
./startresin.sh
- 到 ecology 后台的集成管理中修改OA数据源 IP 地址;其它数据源的不用修改
至此所有步骤就完成了
迁移过程中遇到的问题(补救方法)
我当时迁移的时候只迁移了数据和结构然后出现了下面问题:
- 配置了正确的地址和账号密码,oa连接后会直接跳转到cheak/db_param.jsp当中(其实就是没有执行上面修改MySQL的配置文件出现的情况),因为数据的小版本不一致还修改了一下连接的url,新数据库使用的是最新的MySQL数据8.0.38,之前的数据库是8.0.33,后台日志中报错了查询后现了这报错:Caused by: com.mysql.cj.exceptions.CJException: Public Key Retrieval is not allowed
只要在原来的url上拼接一下这个allowPublicKeyRetrieval=true 就可以了,然后即得到重启e9服务 - 当没有视图的时候流程功能直接失效,查询所有数据都是空白
- 当没有函数数据的时候无法提交和创建新流程提示你流程已经删除
上面问题2,3的解决方案其实很简单就是直接把视图和函数同步过去就可以,可以使用navicat将这些全部导出成一个sql然后执行一下就可以了
泛微的售后电话是:400-021-8875 。如有需要帮忙看一下的可以加qq:2077417187
遇到问题最好的解决方案就是看系统的日志 ecology/log 下的ecology文件!!!!