连接Oracle 数据库时报个异常java.sql.SQLException: Listener refused the connection with the following error:
ORA-12518, TNS:listener could not hand off client connection
原因:url错误
原文:https://cloud.tencent/developer/ask/68516
如何查找Oracle数据库的URL和端口?
例:
“jdbc:oracle:thin:@host:port:dbName”,“userName”,“password”);
是否有我可以查看的SQL命令或日志/配置文件?
使用oracle,有一个tnsnames.ora
定义数据库地址的文件。该文件通常位于$ORACLE_HOME/network/admin
Oracle客户端(如sqlplus或Toad)中,并被其使用。这是一个示例tns条目:
ORA11 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORA11)
)
)
从这个条目你可以看出你的jdbc连接字符串是:
jdbc:oracle:thin:@hostname:1521:ORA11
通过阅读相关JDBC驱动程序附带的文档。
对于Oracle JDBC瘦驱动程序,你可以在此处找到它。
指定数据库URL,用户名和密码 以下签名将URL,用户名和密码作为单独的参数:
getConnection(String URL, String user, String password);
URL的格式如下:jdbc:oracle:<drivertype>:@<database>
以下示例使用Thin驱动程序将用户scott和密码tiger通过INSTANCE_NAME或clcl通过主机myhost的端口1521连接到数据库。Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@myhost:1521:orcl", "scott", "tiger");
如果要为OCI驱动程序使用默认连接,请指定:Connection conn = DriverManager.getConnection ("jdbc:oracle:oci:scott/tiger@");
要么:Connection conn = DriverManager.getConnection ("jdbc:oracle:oci:@", "scott", "tiger");
对于所有JDBC驱动程序,您还可以使用Oracle Net关键字 - 值对来指定数据库。Oracle Net关键字 - 值对替代TNSNAMES条目。以下示例使用与上例相同的参数,但采用关键字值格式:Connection conn = DriverManager.getConnection (jdbc:oracle:oci:@MyHostString","scott","tiger");
要么:Connection conn = DriverManager.getConnection ("jdbc:oracle:oci:@(description=(address=(host= myhost) (protocol=tcp)(port=1521))(connect_data=(INSTANCE_NAME=orcl)))", "scott", "tiger");
更多推荐
如何查找Oracle数据库的URL和端口?
发布评论