为什么会想到要个人搭建confluence呢,虽然平时工作中经常用到还是非常方便的,自己总结一些资料的时候发现如果完全用笔记本(纸质)去记录以后又不方便查找和检索,而博客又不是很随意,它必须有网络有很多局限,后来想到了用chm或者pdf,制作起来有很麻烦,时间久了,也会遇到检索和查找归类的问题. 所以才想自己在本地搭建一个confluence来进行一个长期的学习更新和维护.
当然网上也借鉴了很多资料,这里也做个记录,为什么要本地而不是docker,docker上搭建也面临一个数据丢失的问题. 当然也是可以 但是风险会大一些.
1 基础环境准备
-
Java11 (为什么不用最新的java17 遇到了注册问题暂时无法绕过)
-
MySQL8
-
https://confluence.atlassian.com/doc/supported-platforms-207488198.html#SupportedPlatforms-Databases
-
confluence 版本下载 https://www.atlassian.com/software/confluence/download-archives (按需下载,这里也是参考了别人的用的confluence7.13.5)
-
不论java/mysql/confluence 建议安装在非中文目录,也不要有空格,防止运行的时候出现意外错误很难排查.
1. confluence install
安装完成的最后一部,会显示Launching Confluence XXX in Browser
,自动弹出浏览器
选择Production Installation
得到Server ID
,复制记录一下
进入Confluence安装目录,打开cmd,执行stop_service.bat
,停止服务
这里需要说明一下,网上大部分的注册流程都来自一个人,虽然它自测是ok,但是在win11上已经不好使了(
将atlassian-agent.jar放到特定目录下,本次为了方便直接将其放到Confluence的bin目录下,至于怎么下载网上有很多,比如csdn上可以找到或者百度网盘)
这里它的流程我还是贴出来,可能某些老的版本是可以的.
修改Confluence\bin\setenv.bat,在Java配置项部分添加如下语句并保存
-
set CATALINA_OPTS=-javaagent:atlassian-agent.jar %CATALINA_OPTS%
进入bin目录,使用atlassian-agent.jar生成License Key
-
java -jar atlassian-agent.jar -p conf -m 邮箱 -n 用户 -o 组织 -s 上面的 ServerID
然后同样在bin目录下,在cmd中执行start_confluence.bat /fg ,用confluence17 以及java17的时候,完全崩溃,只有回到java11和confluence7.13.5 勉强可以跑起来,但是注册并不成功.
下面是这种方法的实例:
可以看到成功通过agent启动confluence (并没有看到agent working的字样)
浏览器访问localhost:8090,输入之前生成的License Key,点击Next
注册失败. 这个时候查询到了网上的另外一种方法 即
关于confluence破解"That's not a valid license key"的问题
-
破解confluence,生成的key填写提交时,若提示”That’s not a valid license key”,
-
请检查”/opt/atlassian/confluence/confluence/WEB-INF/lib/”下的atlassian-extras-decoder-v2-3.2.jar是否有成功替换,
-
若不知道怎么确定,可以采用先rm删除原有extras后,再cp新的extras进去的方法
核心问题是atlassian-extras-decoder-v2-xxx. 当然在高级版本中java17 和confluence7.19中,仅仅用这个方法也是不行的.
所以我们需要工具
它是调用了confluence_keygen.jar 具体下载自行网络搜索吧.
在替换atlassian-extras-decoder-v2-xxx.的时候,需要先stop_service.bat 然后替换成功后,start_confluence.bat /fg .重新启动. 这样就可以注册成功了. 这两种方法看实际情况混合用吧 总之不要用太新的版本.
go to next:
key的问题搞定了,下一步 选择My own database
数据库类型选择MySQL,会提示没有相应的jdbc connector;根据提示去下载
进入下载
我们要下载的是mysql-connector-j-8.0.31.jar/mysql-connector-java-8.xxx.jar的,不要下面那个msi的 是个mysql的安装包.
下面给个link 具体下哪个版本 选择platform independent
https://downloads.mysql.com/archives/c-j/
下载好放在confluence\WEB-INF\lib 目录即可
重启confluence,注意也要使用bin下的start_confluence.bat,浏览器访问,再次选择MySQL数据库,填写相应信息,选择Test connection。
点击Test connection, 一般会遇到一些错误.
MySQl issue:
-
SQLState - 42000
-
Error Code - 1049
-
java.sql.SQLSyntaxErrorException: Unknown database 'confluence
解决方式:
登录数据库并创建confluence数据库
>mysql -u root -p 登录数据库
-
mysql> create database confluence default character set utf8 collate utf8_bin;
-
Query OK, 1 row affected, 2 warnings (0.12 sec)
-
-
mysql>
-
mysql> use mysql
-
Database changed
-
mysql> use mysql;
-
Database changed
-
mysql> CREATE USER 'confluence'@'%' IDENTIFIED BY 'root';
-
Query OK, 0 rows affected (0.17 sec)
-
-
mysql> GRANT ALL ON *.* TO `confluence`@`%` WITH GRANT OPTION;
-
Query OK, 0 rows affected (0.14 sec)
-
-
mysql> flush privileges;
-
Query OK, 0 rows affected (0.07 sec)
-
-
mysql> SELECT @@character_set_database, @@collation_database;
-
+--------------------------+----------------------+
-
| @@character_set_database | @@collation_database |
-
+--------------------------+----------------------+
-
| utf8mb4 | utf8mb4_0900_ai_ci |
-
+--------------------------+----------------------+
-
1 row in set (0.00 sec)
然后又遇到
Your database must be configured to either use utf8 or utf8mb4 as the default
-
mysql> alter database confluence default collate utf8mb4_bin;
当然也有其他类似的方法.
每一步都要Test connection 测试. 接着遇到
-
Incorrect isolation level
-
Your database must use 'READ-COMMITTED' as the default isolation level. Learn more
就是'READ-COMMITTED'的问题,很好解决.
-
mysql> SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED;
-
Query OK, 0 rows affected (0.23 sec)
在创建mysql数据库的如果想删除 即:The current server installed: mysql错误
测试过网上的sc delete mysql并不好使.
-
解决办法
-
对于cmd中mysql执行命令报错的情况,在命令前加"./"即可。
-
-
移除原来的mysql服务
-
./mysqld -remove MySQL
-
-
如果删除失败,可以用下面命令:
-
-
./mysqld-nt install
-
-
运行完成后,重启电脑(划重点)
补充一下在安装java的时候 记得设置JAVA_HOME的环境变量,有些攻略没有说.
win10设置环境变量在 系统-->高级系统设置--->高级(选项)--环境变量 ,
修改 系统变量,可以添加到现有的 path路径下,也可以自己新建一个.
回到confluence. 基本解决完异常. 我们就可以进入正规了
mysql Test ok,点击next, 等待数据库初始化,数据库创建完成后,出现如下界面,可以选择 Example Site
接下来选择管理用户和组的方式,由于没有Jira,所以选第一个
下面设置一下管理员密码就完成了.
后来重启电脑后发现confluence起不来. 提示
-
MySQL session isolation level 'REPEATABLE-READ' is no longer supported
1.动态解决方法就是上面提到的:
-
mysql> SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED;
但是重启后,mysql的配置丢失了,那么如何永久的保存mysql的设置呢,在windows版本中在mysql的安装目录里新建一个my.ini(记得打开文件扩展名,确保是.ini). 然后在[mysqld]字段下面添加
-
transaction-isolation=READ-COMMITTED
重启mysql,重启confluence即可.
可以参考: https://confluence.atlassian.com/confkb/confluence-fails-to-start-and-throws-mysql-session-isolation-level-repeatable-read-is-no-longer-supported-error-241568536.html
至此,confluence可以完美运行,电脑重启后也可以正常访问.
阅读(11045) | 评论(0) | 转发(0) |