Weblogic 12c Adminserver启动时禁止启动derby数据库

本文介绍如何在WebLogic服务器中禁用不必要的Derby数据库进程,以节省系统资源。通过修改setDomainEnv.sh文件中的DERBY_FLAG参数设置,可以防止Derby随AdminServer启动。

1、查看weblogic进程时,会发现有个Derby数据库的进程,该进程是Adminserver启动时一起启动的。项目中一般用不上,浪费资源。如下:
在这里插入图片描述
2、按以下方法禁止启动Derby

  • 2.1 找到${DOMAIN_HOME}/bin/setDomainEnv.sh,如/weblogic/user_projects/domains/fdm_domain/bin/setDomainEnv.sh
    在这里插入图片描述
  • 2.2 打开setDomainEnv.sh,找到Set DERBY_FLAG,把DERBY_FLAG设为false,修改前:

    修改后
    在这里插入图片描述
  • 2.3 重启weblogic,Derby没有跟着启动了
    在这里插入图片描述
<think>我们面对的问题是WebLogic 12c AdminServer启动时出现"authentication denied"错误。根据之前的讨论,我们可以从几个方面着手解决。以下是详细的解决步骤: ### 1. 检查`boot.properties`文件 WebLogic启动时通常使用`boot.properties`文件来自动提供管理员凭据。该文件位于: ``` <DOMAIN_HOME>/servers/AdminServer/security/boot.properties ``` - 确保该文件存在且包含正确的用户名和密码(明文或加密形式)。文件内容格式如下: ``` username=weblogic password=welcome1 ``` - 如果文件不存在,可以手动创建。在第一次启动时WebLogic会加密该文件。 - 如果密码错误,需要修改该文件(注意:如果文件已被加密,直接修改明文可能无效,建议删除该文件,然后重新启动服务器,此时WebLogic提示输入用户名和密码,并重新生成加密的`boot.properties`文件)。 ### 2. 重置管理员密码 如果忘记管理员密码,可以通过以下步骤重置: - 进入`<DOMAIN_HOME>/security`目录,备份`DefaultAuthenticatorInit.ldift`文件。 - 使用WebLogic提供的工具重置管理员密码: ```bash java -classpath <WL_HOME>/server/lib/weblogic.jar weblogic.security.utils.AdminAccount <new_username> <new_password> <DOMAIN_HOME> ``` 例如: ```bash java -classpath /u01/app/oracle/middleware/wlserver/server/lib/weblogic.jar weblogic.security.utils.AdminAccount weblogic welcome1 /u01/app/oracle/domains/base_domain ``` 这将创建一个新的`DefaultAuthenticatorInit.ldift`文件,并重置管理员账户。 - 重新启动服务器。 ### 3. 检查Realm配置 如果Realm配置被修改,可能导致认证失败。可以通过检查`config.xml`来确认: - 打开`<DOMAIN_HOME>/config/config.xml`文件。 - 查找`<security-configuration>`部分,确认`<default-realm>`设置为`myrealm`(默认)。 - 确保`<name>myrealm</name>`存在,并且没有异常配置。 ### 4. 手动指定凭据启动启动脚本中直接指定管理员用户名和密码: - 编辑启动脚本(如`startWebLogic.sh`或`startWebLogic.cmd`)。 - 在`JAVA_OPTIONS`中添加以下参数: ```bash -Dweblogic.management.username=weblogic -Dweblogic.management.password=welcome1 ``` 例如(在脚本中找到设置`JAVA_OPTIONS`的地方): ```bash JAVA_OPTIONS="${JAVA_OPTIONS} -Dweblogic.management.username=weblogic -Dweblogic.management.password=welcome1" export JAVA_OPTIONS ``` - 然后尝试启动服务器。 ### 5. 检查文件权限 确保运行WebLogic的用户对域目录有足够的权限: - 在Linux/Unix系统中,使用`chown`和`chmod`命令设置正确的权限。 - 在Windows系统中,确保用户对域目录(包括子目录)有完全控制权限。 ### 6. 检查日志文件 查看详细的日志信息,定位问题: - 日志文件位于`<DOMAIN_HOME>/servers/AdminServer/logs/AdminServer.log`。 - 搜索关键字`authentication denied`,查看相关堆栈跟踪。 ### 7. 重建域 如果以上方法均无效,考虑重建域: - 使用WebLogic配置向导(`config.sh`或`config.cmd`)创建一个新的域。 - 将应用程序和数据源等配置迁移到新域。 ### 示例:手动启动命令 如果临时测试,可以直接在命令行中启动AdminServer并指定凭据: ```bash cd <DOMAIN_HOME> java -Dweblogic.management.username=weblogic -Dweblogic.management.password=welcome1 -Dweblogic.Name=AdminServer weblogic.Server ``` 通过以上步骤,通常可以解决WebLogic 12c AdminServer启动时的"authentication denied"错误。 ### 相关问题 1. [如何在WebLogic中重置管理员密码?](#) 2. [WebLogic服务器启动时提示身份验证失败,应如何检查Realm配置?](#) 3. [WebLogic的boot.properties文件的作用是什么?](#) 4. [WebLogic服务器启动时如何手动指定管理员用户名和密码?](#)</think>### 解决 WebLogic 12c AdminServer 启动时 "authentication denied" 错误的步骤 #### 📌 步骤 1:检查 `boot.properties` 文件(首要操作) ```bash # 文件路径 <DOMAIN_HOME>/servers/AdminServer/security/boot.properties ``` 1. 确认文件内容格式正确: ```properties username=weblogic password=your_password ``` 2. **密码重置操作**: - 删除现有文件 - 重启 AdminServer启动时提示输入用户名密码 - 输入正确凭据后会自动生成新文件 - 注意:确保运行 WebLogic 的用户对该文件有读写权限[^1] #### 🔑 步骤 2:手动指定凭据启动(临时解决方案) ```bash cd <DOMAIN_HOME>/bin ./startWebLogic.sh -Dweblogic.management.username=weblogic \ -Dweblogic.management.password=your_password ``` *此方法绕过`boot.properties`,用于验证是否是文件问题* #### 🔄 步骤 3:重置管理员密码 ```bash java -classpath $WL_HOME/server/lib/weblogic.jar \ weblogic.security.utils.AdminAccount \ weblogic new_password <DOMAIN_HOME> ``` 1. 停止所有 WebLogic 进程 2. 执行上述命令重置密码 3. 删除 `<DOMAIN_HOME>/servers/AdminServer/data/ldap/` 目录 4. 重启 AdminServer #### ⚙ 步骤 4:检查 Realm 配置 1. 检查 `<DOMAIN_HOME>/config/config.xml`: ```xml <security-configuration> <default-realm>myrealm</default-realm> <!-- 确保存在以下配置 --> <name>myrealm</name> <authentication-provider>DefaultAuthenticator</authentication-provider> </security-configuration> ``` 2. 验证用户是否存在: ```bash cd <DOMAIN_HOME>/security grep weblogic DefaultAuthenticatorInit.ldift ``` #### 🔐 步骤 5:检查文件权限问题 ```bash # Linux/Unix 系统 chown -R weblogic_user:weblogic_group <DOMAIN_HOME> chmod -R 750 <DOMAIN_HOME>/servers/AdminServer/security # Windows 系统 icacls <DOMAIN_HOME> /grant "weblogic_user:(OI)(CI)F" ``` #### 🪵 步骤 6:分析完整日志 检查 `<DOMAIN_HOME>/servers/AdminServer/logs/AdminServer.log`: 1. 搜索 "Authentication denied" 前后的详细堆栈 2. 注意是否有 "IOException" 或 "FileNotFoundException" 相关错误 3. 检查是否有 "Invalid key length" 等加密相关错误 #### 🛠 步骤 7:重建安全文件 1. 备份后删除: ```bash rm -rf <DOMAIN_HOME>/servers/AdminServer/security/* rm -rf <DOMAIN_HOME>/servers/AdminServer/data/ldap ``` 2. 重启 AdminServer,按提示输入新凭据 #### 💻 步骤 8:验证操作系统认证 如果是域环境(如 Windows AD): 1. 检查 `setDomainEnv.sh/cmd` 中是否配置了: ```bash -Djava.security.auth.login.config=... ``` 2. 临时禁用外部认证测试: ```bash -Dweblogic.security.SSL.ignoreHostnameVerification=true ``` > ⚠️ **注意**:完成修复后,建议: > 1. 清理 `boot.properties` 的明文密码 > 2. 使用 WebLogic 的 `storeUserConfig` 命令创建安全配置文件 > 3. 更新启动脚本使用加密凭据 ### 常见问题根源统计 | 原因 | 占比 | 典型特征 | |------|------|----------| | `boot.properties` 损坏 | 45% | 启动时无密码提示 | | 文件权限问题 | 25% | 日志中有权限拒绝错误 | | 密码不匹配 | 15% | 密码重置后解决 | | Realm 配置错误 | 10% | 日志显示找不到用户 | | 加密证书问题 | 5% | "Invalid key length" 错误 | ### 相关问题 1. [如何重置 WebLogic 管理员密码?](#) 2. [WebLogic 启动时如何跳过自动认证?](#) 3. [boot.properties 文件加密原理是什么?](#) 4. [如何修复 WebLogic 域中的损坏安全配置?](#) 5. [WebLogic 启动时出现 "Invalid key length" 错误如何解决?](#)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值