CentOS环境下WebLogic连接数据库常见问题及解决方法
systemctl status postgresql(PostgreSQL)或systemctl status mysqld(MySQL)命令检查数据库服务状态,未启动则执行systemctl start postgresql启动服务。ping <数据库服务器IP>测试网络连通性,确保两台服务器之间网络正常。my.cnf文件中的bind-address需设置为0.0.0.0或数据库服务器IP),并确认端口(如MySQL默认3306、PostgreSQL默认5432)开放。ojdbc8.jar、MySQL的mysql-connector-java-8.0.xx.jar)。lib目录(如/opt/weblogic/server/lib),或域的lib目录(如/opt/weblogic/user_projects/domains/your_domain/lib),重启WebLogic使驱动生效。web.xml或weblogic.xml中的名称不一致。jdbc/oracle)。web.xml文件,确保<resource-ref>中的<res-ref-name>与WebLogic中的JNDI名称一致;若使用weblogic.xml,需确认<resource-description>中的JNDI名称匹配。firewall-cmd --zone=public --add-port=<数据库端口>/tcp --permanent命令开放数据库端口(如MySQL的3306端口)。firewall-cmd --reload命令重新加载防火墙规则,使配置生效。CREATE USER 'weblogic'@'%' IDENTIFIED BY 'weblogic1234'; -- 创建用户(%表示允许任意IP访问)
GRANT ALL PRIVILEGES ON your_database_name.* TO 'weblogic'@'%'; -- 授予数据库所有权限
FLUSH PRIVILEGES; -- 刷新权限
Connection对象未调用close()方法)。try-with-resources语句确保连接自动关闭(如try (Connection conn = ds.getConnection()) { ... })。SELECT 1 FROM DUAL)。DOMAIN_HOME/servers/AdminServer/logs目录下的AdminServer.out、server.log文件),查找与数据库连接相关的错误信息(如java.sql.SQLException、Connection refused)。/var/log/mysqld.log、PostgreSQL的/var/lib/pgsql/data/pg_log目录下的日志),确认是否有来自WebLogic服务器的连接请求及拒绝原因。