Python: невозможно подключиться к базе данных Oracle ORA-12537: TNS: соединение закрытоPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python: невозможно подключиться к базе данных Oracle ORA-12537: TNS: соединение закрыто

Сообщение Anonymous »

Я пытаюсь подключиться к базе данных Oracle в системе Mac.
Моя команда обычно работает на Java, поэтому для разработки. мы обычно делаем это для подключения к базе данных в Java. Мы подключаемся к ssh-туннелю, который позволяет нам подключиться к удаленному хосту. И у нас есть кошелек oracle db, файл свойств которого мы упомянули.
Итак, с помощью этого ssh-туннеля и кошелька я также пытаюсь подключиться к Python. Просматривая различные ресурсы в Интернете, я создал приведенный ниже код.

Код: Выделить всё

import oracledb
import os

# Values
local_port = 1522
service_name = "mydb_high"
username = "read_only"
password = "pwd"
wallet_path = "/path/to/wallet/folder"
lib_dir = '/path/to/oracle_client/folder'

# Set the TNS_ADMIN environment variable to your wallet directory
os.environ["TNS_ADMIN"] = wallet_path

# Initialise Oracle Client
try:
oracledb.init_oracle_client(lib_dir=lib_dir)

except Exception as e:
print("Error initializing Oracle Client:", e)

dsn = "127.0.0.1:1522/" + service_name

try:
# Connect to the database

connection = oracledb.connect(
user=username,
password=password,
dsn=dsn
)

print("Connected to Oracle Database")

# Create a cursor object to execute queries
cursor = connection.cursor()

# test the connection
cursor.execute("SELECT sysdate FROM dual")
result = cursor.fetchone()
print("Current Date/Time from Oracle DB:", result[0])

except oracledb.DatabaseError as e:
error, = e.args
print(f"Database connection failed: {error.message}")

finally:
if 'connection' in locals() and connection:
connection.close()
print("Connection closed.")
Когда я запускаю приведенный выше код, я получаю следующее ORA-12537: TNS:соединение закрыто. Я попытался найти ошибку в Интернете, но все решения говорят, что она связана со строкой подключения и неправильным файлом кошелька. Но тот же файл кошелька отлично работает для приложений sqldeveloper и Java.
одно из решений попросило меня проверить соединение oracle_client с помощью sqlplus из терминала.

Код: Выделить всё

sqlplus 127.0.0.1:1522/mydb_high
Когда я пытаюсь, я получаю эту ошибку.
ORA-12162: Имя службы TNS:net неверно указан
Мой файл sqlnet.ora, который находится в каталоге кошелька. выглядит вот так.

Код: Выделить всё

WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY="?/network/admin")))
SSL_SERVER_DN_MATCH=no
Я даже обновил его,

Код: Выделить всё

WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY="/path/to/wallet/folder")))
SSL_SERVER_DN_MATCH=yes
Это тоже не помогает.
Можете ли вы мне помочь с этим?

Подробнее здесь: https://stackoverflow.com/questions/792 ... ion-closed
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»