Я пытаюсь подключиться к базе данных Oracle, но получаю следующее сообщение об ошибке:
curcon = cx_Oracle.connect (conn_str) cx_Oracle.DatabaseError: ORA-12170: TNS: истекло время ожидания подключения
Вот блок кода:
conn_str = u'user/pwd@111.22.33.444:8000/service' curcon = cx_Oracle.connect(conn_str) cursor = curcon.cursor()
Я пробовал решения из этих двух потоков, но ни один из них не работает:
Установить время ожидания соединения с базой данных в Python
ORA-12170: TNS: истекло время ожидания соединения
В документе cx_Oracle Connecting to Oracle Database упоминается следующее:
import cx_Oracle userpwd = ". . ." # Obtain password string from a user prompt or environment variable connection = cx_Oracle.connect("hr", userpwd, "dbhost.example.com/orclpdb1", encoding="UTF-8")
Или
with cx_Oracle.connect(userName, password, "dbhost.example.com/orclpdb1", encoding="UTF-8") as connection: cursor = connection.cursor() cursor.execute("insert into SomeTable values (:1, :2)", (1, "Some string")) connection.commit()
Также вы можете найти примеры в https://github.com/oracle/python-cx_Oracle/tree/master/samples
Ваш код работает для базы данных на той же машине, это должно работать для вас,
connection = cx_Oracle.connect('user', 'pwd', cx_Oracle.makedsn( 'ip', 'port',None,'given service name/id'))