Рейтинг:0

django.db.utils.DatabaseError: ORA-12154: TNS: не удалось разрешить идентификатор подключения, указанный в OCI

флаг ng
django.db.utils.DatabaseError: ORA-12154: TNS: не удалось разрешить указанный идентификатор подключения

в OCI неоднократно возникают ошибки при подключении базы данных ADW (автономное хранилище баз данных 19c) для развертывания проекта Django в облачной инфраструктуре оракула.

 uname -а
Экземпляр Linux-20210913-1957 5.4.17-2102.204.4.4.el7uek.x86_64 #2 SMP Вт, 17 августа, 20:25:28 PDT 2021 x86_64 x86_64 x86_64 GNU/Linux

заморозка пункта
asgiref==3.4.1
cx-Oracle==8.0.0
Джанго == 3.2.7
питц==2021.1
sqlparse==0.4.2
расширения ввода == 3.10.0.2

Я разархивировал файл регионального кошелька в /usr/lib/oracle/21/client64/lib/network/admin

мои настройки.py

БАЗЫ ДАННЫХ={
    'По умолчанию':
    {
    «ДВИГАТЕЛЬ»: «django.db.backends.oracle»,
    'ИМЯ':'potatodbname',
    «ПОЛЬЗОВАТЕЛЬ»: «АДМИН»,
    'PASSWORD':'wieredpassword',#Пожалуйста, укажите здесь пароль базы данных
    }
}

полная ошибка:

 python manage.py миграция
Traceback (последний последний вызов):
  Файл "/var/www/cgi-bin/trydjango-dev/lib64/python3.6/site-packages/django/db/backends/base/base.py", строка 219, в файлеsure_connection
    самоподключение()
  Файл "/var/www/cgi-bin/trydjango-dev/lib64/python3.6/site-packages/django/utils/asyncio.py", строка 26, во внутреннем
    функция возврата (*args, **kwargs)
  Файл "/var/www/cgi-bin/trydjango-dev/lib64/python3.6/site-packages/django/db/backends/base/base.py", строка 200, при подключении
    self.connection = self.get_new_connection(conn_params)
  Файл "/var/www/cgi-bin/trydjango-dev/lib64/python3.6/site-packages/django/utils/asyncio.py", строка 26, во внутреннем
    функция возврата (*args, **kwargs)
  Файл "/var/www/cgi-bin/trydjango-dev/lib64/python3.6/site-packages/django/db/backends/oracle/base.py", строка 233, в get_new_connection
    **conn_params,
cx_Oracle.DatabaseError: ORA-12154: TNS: не удалось разрешить указанный идентификатор подключения

Вышеупомянутое исключение было прямой причиной следующего исключения:

Traceback (последний последний вызов):
  Файл «manage.py», строка 22, в <module>
    главный()
  Файл "manage.py", строка 18, в основном
    execute_from_command_line(sys.argv)
  Файл "/var/www/cgi-bin/trydjango-dev/lib64/python3.6/site-packages/django/core/management/__init__.py", строка 419, в execute_from_command_line
    утилита.execute()
  Файл "/var/www/cgi-bin/trydjango-dev/lib64/python3.6/site-packages/django/core/management/__init__.py", строка 413, выполняется
    self.fetch_command(подкоманда).run_from_argv(self.argv)
  Файл "/var/www/cgi-bin/trydjango-dev/lib64/python3.6/site-packages/django/core/management/base.py", строка 354, в run_from_argv
    self.execute(*аргументы, **cmd_options)
  Файл "/var/www/cgi-bin/trydjango-dev/lib64/python3.6/site-packages/django/core/management/base.py", строка 398, выполняется
    вывод = self.handle(*аргументы, **параметры)
  Файл "/var/www/cgi-bin/trydjango-dev/lib64/python3.6/site-packages/django/core/management/base.py", строка 89, завернутый
    res = handle_func(*args, **kwargs)
  Файл "/var/www/cgi-bin/trydjango-dev/lib64/python3.6/site-packages/django/core/management/commands/migrate.py", строка 92, в дескрипторе
    исполнитель = MigrationExecutor (соединение, self.migration_progress_callback)
  Файл "/var/www/cgi-bin/trydjango-dev/lib64/python3.6/site-packages/django/db/migrations/executor.py", строка 18, в __init__
    self.loader = MigrationLoader(self.connection)
  Файл "/var/www/cgi-bin/trydjango-dev/lib64/python3.6/site-packages/django/db/migrations/loader.py", строка 53, в __init__
    self.build_graph()
  Файл "/var/www/cgi-bin/trydjango-dev/lib64/python3.6/site-packages/django/db/migrations/loader.py", строка 220, в build_graph
    self.applied_migrations = рекордер.applied_migrations()
  Файл "/var/www/cgi-bin/trydjango-dev/lib64/python3.6/site-packages/django/db/migrations/recorder.py", строка 77, в apply_migrations
    если self.has_table():
  Файл "/var/www/cgi-bin/trydjango-dev/lib64/python3.6/site-packages/django/db/migrations/recorder.py", строка 55, в has_table
    с self.connection.cursor() в качестве курсора:
  Файл "/var/www/cgi-bin/trydjango-dev/lib64/python3.6/site-packages/django/utils/asyncio.py", строка 26, во внутреннем
    функция возврата (*args, **kwargs)
  Файл "/var/www/cgi-bin/trydjango-dev/lib64/python3.6/site-packages/django/db/backends/base/base.py", строка 259, курсор
    вернуть self._cursor()
  Файл "/var/www/cgi-bin/trydjango-dev/lib64/python3.6/site-packages/django/db/backends/base/base.py", строка 235, в _cursor
    self.ensure_connection()
  Файл "/var/www/cgi-bin/trydjango-dev/lib64/python3.6/site-packages/django/utils/asyncio.py", строка 26, во внутреннем
    функция возврата (*args, **kwargs)
  Файл "/var/www/cgi-bin/trydjango-dev/lib64/python3.6/site-packages/django/db/backends/base/base.py", строка 219, в файлеsure_connection
    самоподключение()
  Файл "/var/www/cgi-bin/trydjango-dev/lib64/python3.6/site-packages/django/db/utils.py", строка 90, в __exit__
    поднять dj_exc_value.with_traceback(traceback) из exc_value
  Файл "/var/www/cgi-bin/trydjango-dev/lib64/python3.6/site-packages/django/db/backends/base/base.py", строка 219, в файлеsure_connection
    самоподключение()
  Файл "/var/www/cgi-bin/trydjango-dev/lib64/python3.6/site-packages/django/utils/asyncio.py", строка 26, во внутреннем
    функция возврата (*args, **kwargs)
  Файл "/var/www/cgi-bin/trydjango-dev/lib64/python3.6/site-packages/django/db/backends/base/base.py", строка 200, при подключении
    self.connection = self.get_new_connection(conn_params)
  Файл "/var/www/cgi-bin/trydjango-dev/lib64/python3.6/site-packages/django/utils/asyncio.py", строка 26, во внутреннем
    функция возврата (*args, **kwargs)
  Файл "/var/www/cgi-bin/trydjango-dev/lib64/python3.6/site-packages/django/db/backends/oracle/base.py", строка 233, в get_new_connection
    **conn_params,
django.db.utils.DatabaseError: ORA-12154: TNS: не удалось разрешить указанный идентификатор подключения

что я пропустил, чтобы получить эту ошибку?

Рейтинг:0
флаг ng

исправление в settings.py:

БАЗЫ ДАННЫХ={
    'По умолчанию':
    {
    «ДВИГАТЕЛЬ»: «django.db.backends.oracle»,
    «ИМЯ»: «имя службы», # должно быть именем службы, например. dbname_high, dbname_low, dbname_medium и т. д.
    «ПОЛЬЗОВАТЕЛЬ»: «АДМИН»,
    'PASSWORD':'bhouguspassword',#Пожалуйста, укажите здесь пароль базы данных, но это может вызвать проблемы, если вы использовали '@'
    }
}

дорожка:

ls -lart /usr/lib/оракул/21/

Я распаковал кошелек внутри ?/сеть/админ папку и изменил группу poermission на apache с помощью chown -R :apache /usr/lib/oracle/21/ убедитесь, что у вас правильно настроены TNS_ADMIN, LD_LIBRARY_PATH

python manage.py миграция

Операции для выполнения:
  Применить все миграции: admin, auth, contenttypes, session
Запуск миграций:
  Применение contenttypes.0001_initial... ОК
  Применение auth.0001_initial... ОК
  Применение admin.0001_initial... ОК
  Применение admin.0002_logentry_remove_auto_add... ОК
  Применение admin.0003_logentry_add_action_flag_choices... ОК
  Применение contenttypes.0002_remove_content_type_name... ОК
  Применение auth.0002_alter_permission_name_max_length... OK
  Применение auth.0003_alter_user_email_max_length... ОК
  Применение auth.0004_alter_user_username_opts... ОК
  Применение auth.0005_alter_user_last_login_null... OK
  Применение auth.0006_require_contenttypes_0002... OK
  Применение auth.0007_alter_validators_add_error_messages... OK
  Применение auth.0008_alter_user_username_max_length... ОК
  Применение auth.0009_alter_user_last_name_max_length... OK
  Применение auth.0010_alter_group_name_max_length... ОК
  Применение auth.0011_update_proxy_permissions... OK
  Применение auth.0012_alter_user_first_name_max_length... OK
  Применение сеансов.0001_initial... ОК

если ACL включен, отредактируйте свой IP, CIDR и vcn

Благодарность

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.