如何获取windows 10上ORACLE 11 g数据库的IP地址以远程连接到该数据库?

2024-09-30 10:35:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经在笔记本电脑的Windows10f驱动器上安装了oracle 11g。我想知道数据库的IP地址,以便使用python连接到它?如何找到ip地址

我试过这个命令: 从dual中选择sys_context('USERENV','IP_ADDRESS'); 但是它给了我本地主机地址

我也试过了 选择UTL_INADDR.get_host_address from dual; 但是,这会抛出一个错误,表示访问控制列表拒绝网络访问

如何查找IP地址


Tags: 命令ip数据库address地址syscontext笔记本电脑
2条回答

在Oracle配置中必须有TNSNAMES.ORA文件。找到那个文件并打开它。那里应该有ip地址和需要的端口

从官方文件:

By default, tnsnames.ora is located in the $ORACLE_HOME/network/admin directory on UNIX operating systems and in the %ORACLE_HOME%\network\admin directory on Windows operating systems. tnsnames.ora can also be stored the following locations:

The directory specified by the TNS_ADMIN environment variable or registry value

On UNIX operating systems, the global configuration directory. For example, on the Solaris Operating System, this directory is /var/opt/oracle.

然后,您可以使用下面的连接字符串语法将db与python cx_Oracle库连接起来

连接\u oracle\u textfile.txt->username/password@HOST:PORT/SERVICE_NAME(您可以在tnsnames.ora文件中找到除用户名和密码以外的所有密码)

import cx_Oracle as cx_Oracle
def get_oracle_table_from_dbm(sql_text):
if 'connection_oracle' not in  globals():
    print('connection does not exist. Try to connect it...')
    f = open('connection_oracle_textfile.txt', "r")
    fx = f.read()         
    ####
    global connection_oracle
    connection_oracle = cx_Oracle.connect(fx)
    ####
    print('connection established!!')

print('Already have connection. Just fetch data!!')
return pd.read_sql(sql_text, con=connection_oracle)

Docs

没有为Oracle数据库分配IP地址。在您的情况下,数据库安装在您自己的机器上,因此数据库的IP地址与您自己机器的IP地址相同

select sys_context('USERENV','IP_ADDRESS') from dual;

前面提到的查询给出了连接到数据库的客户端的IP地址。我想你被这个误解了-它不是数据库的IP地址

如果需要数据库的HOST_NAME,那么可以使用以下查询。请注意HOAST_NAME可用于在连接字符串或TNS_NAMES.ora中连接到数据库

SQL> SELECT INSTANCE_NAME, HOST_NAME FROM V$INSTANCE;

INSTANCE_N HOST_NAME
                
orcl       DESKTOP-0******

SQL>

我希望这会消除你所有的疑虑

干杯

相关问题 更多 >

    热门问题