确保CentOS上的数据库服务(如MySQL、PostgreSQL、Oracle)已启动并正常运行。可使用以下命令检查服务状态(以PostgreSQL为例):
sudo systemctl status postgresql
若未启动,使用sudo systemctl start postgresql启动服务;若需开机自启,执行sudo systemctl enable postgresql。
确保WebLogic服务器能访问数据库服务器的网络。使用ping命令测试连通性:
ping <数据库服务器IP>
若无法ping通,需检查网络配置(如防火墙、路由、安全组)或数据库服务器的网络设置。
CentOS的防火墙(如firewalld或iptables)可能阻止WebLogic访问数据库端口(如MySQL默认3306、Oracle默认1521)。以firewalld为例,添加允许端口的规则:
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent # 替换为数据库实际端口
sudo firewall-cmd --reload
若使用iptables,执行sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT并保存规则。
确保数据库用户具备从WebLogic服务器访问的权限。登录数据库,执行以下命令(以MySQL为例):
CREATE USER 'weblogic'@'WebLogic服务器IP' IDENTIFIED BY 'weblogic1234'; -- 替换为实际用户名、密码和WebLogic服务器IP
GRANT ALL PRIVILEGES ON database_name.* TO 'weblogic'@'WebLogic服务器IP'; -- 替换为实际数据库名
FLUSH PRIVILEGES;
若为本地测试,可将'WebLogic服务器IP'改为'%'允许所有IP访问(生产环境不推荐)。
确保WebLogic服务器已安装对应数据库的JDBC驱动(如MySQL的mysql-connector-java.jar、Oracle的ojdbc.jar)。将驱动复制到WebLogic的lib目录(如/opt/weblogic/wlserver/server/lib),并重启WebLogic使驱动生效。
通过WebLogic控制台检查数据源配置的正确性:
http://WebLogic服务器IP:7001/console);jdbc:mysql://数据库服务器IP:3306/database_name)、用户名/密码(与数据库用户一致);若上述步骤无法解决,查看WebLogic和数据库的日志获取详细错误信息:
DOMAIN_HOME/servers/AdminServer/logs/目录下(如AdminServer.log、server_name.out);/var/log/mysql/error.log、Oracle位于$ORACLE_BASE/diag/rdbms/<数据库名>/<实例名>/trace/alert_<实例名>.log)。ORA-12170: TNS连接超时、Communications link failure)可快速定位问题根源。若连接池配置不合理,可能导致连接失败。通过WebLogic控制台调整以下参数:
SELECT 1 FROM DUAL)。