Oracle 新建数据源,测试步骤显示报错,请问什么原因?怎么解决?

下午好🌅🌅🌅
本答案参考通义千问
在使用 Oracle 数据库 时,新建数据源并进行测试连接时出现报错,可能是由多种原因导致的。以下是一些常见原因及详细解决方案:
打开命令提示符(Windows)或终端(Linux/Unix),执行以下命令:
sqlplus / as sysdba
Windows 下启动服务:
services.msc)OracleService<实例名> 和 OracleDBConsole<实例名> 服务。Linux/Unix 下启动服务:
sudo systemctl start oracle
检查监听器是否正在运行:
lsnrctl status
lsnrctl start
检查 listener.ora 文件路径(通常位于 $ORACLE_HOME/network/admin/):
查看 tnsnames.ora 文件内容(路径同上):
MYDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
确保以下信息正确:
HOST 是数据库服务器的 IP 或主机名PORT 是监听器使用的端口(默认 1521)SERVICE_NAME 是数据库的服务名(不是 SID)测试 TNS 连接:
tnsping MYDB
使用 ping 测试数据库服务器是否可达:
ping 192.168.1.100
使用 telnet 测试端口是否开放:
telnet 192.168.1.100 1521
如果无法连接,请检查:
as sysdba 方式登录)。Oracle JDBC 驱动文件(如 ojdbc8.jar)应放置在项目类路径中。
检查驱动版本是否与数据库版本兼容:
ojdbc8.jarojdbc6.jar示例代码(Java 中使用 JDBC 连接 Oracle):
String url = "jdbc:oracle:thin:@//192.168.1.100:1521/orcl";
String user = "scott";
String password = "tiger";
try {
Connection conn = DriverManager.getConnection(url, user, password);
System.out.println("连接成功!");
} catch (SQLException e) {
System.out.println("连接失败:" + e.getMessage());
}
如果你能提供具体的错误信息(例如:ORA-12170、ORA-12545、Connection refused 等),我可以进一步帮你定位问题!