Вопрос или проблема
У меня возникают проблемы с pgAdmin 4 на моем сервере Windows Azure. Вот подробности:
Шаги, которые я предпринял:
- Я настроил необходимые переменные окружения.
- Я запускаю pgAdmin от имени администратора.
- Я проверил файл config_local.py и убедился, что настройки сервера правильные.
- Я убедился, что брандмауэр Windows разрешает входящий
- трафик на порту 5050.
Когда я пытаюсь открыть pgAdmin 4, я получаю следующее сообщение об ошибке:
Среда выполнения pgAdmin
Путь к Python: “C:\Program Files\PostgreSQL\16\pgAdmin 4\python\python.exe”
Файл конфигурации времени выполнения: “C:\Users\mecwin-mkr\AppData\Roaming\pgadmin4\config.json”
Путь к веб-приложению: “C:\Program Files\PostgreSQL\16\pgAdmin 4\web\pgAdmin4.py”
Команда pgAdmin: “C:\Program Files\PostgreSQL\16\pgAdmin 4\python\python.exe -s C:\Program Files\PostgreSQL\16\pgAdmin 4\web\pgAdmin4.py”
Окружение:
- ALLUSERSPROFILE: C:\ProgramData
- APPDATA: C:\Users\mecwin-mkr\AppData\Roaming
- ChocolateyInstall: C:\ProgramData\chocolatey
- ChocolateyLastPathUpdate: 133693982423429714
- CLIENTNAME: DESKTOP-N4D9OJT
- CommonProgramFiles: C:\Program Files\Common Files
- CommonProgramFiles(x86): C:\Program Files (x86)\Common Files
- CommonProgramW6432: C:\Program Files\Common Files
- COMPUTERNAME: Mecwin-Nethra-M
- ComSpec: C:\Windows\system32\cmd.exe
- DriverData: C:\Windows\System32\Drivers\DriverData
- ELECTRON_ENABLE_SECURITY_WARNINGS: false
- HOMEDRIVE: C:
- HOMEPATH: \Users\mecwin-mkr
- LOCALAPPDATA: C:\Users\mecwin-mkr\AppData\Local
- LOGONSERVER: \Mecwin-Nethra-M
- NUMBER_OF_PROCESSORS: 2
- ORIGINAL_XDG_CURRENT_DESKTOP: undefined
- OS: Windows_NT
- Path: C:\Program Files\PostgreSQL\16\pgAdmin 4\runtime;C:\Program Files\PostgreSQL\16\pgAdmin 4\runtime;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files\dotnet;C:\Program Files\nodejs;C:\ProgramData\chocolatey\bin;C:\Program Files\PostgreSQL\17\bin;C:\Users\mecwin-mkr\AppData\Local\Programs\Python\Python312\python.exe;C:\Users\mecwin-mkr\AppData\Local\Programs\Python\Python312;C:\Users\mecwin-mkr\AppData\Local\Programs\Python\Python312\Scripts;C:\Users\mecwin-mkr\AppData\Local\Programs\Python\Launcher;C:\Users\mecwin-mkr\AppData\Local\Microsoft\WindowsApps;C:\Users\mecwin-mkr\AppData\Roaming\npm;C:\Users\mecwin-mkr\AppData\Local\Programs\Microsoft VS Code\bin
- PATHEXT: .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
- PGADMIN_INT_KEY: 87666d01-4c50-4dc2-b2fb-33ba21adeacb
- PGADMIN_INT_PORT: 63821
- PGADMIN_SERVER_MODE: OFF
- PROCESSOR_ARCHITECTURE: AMD64
- PROCESSOR_IDENTIFIER: Intel64 Family 6 Model 106 Stepping 6, GenuineIntel
- PROCESSOR_LEVEL: 6
- PROCESSOR_REVISION: 6a06
- ProgramData: C:\ProgramData
- ProgramFiles: C:\Program Files
- ProgramFiles(x86): C:\Program Files (x86)
- ProgramW6432: C:\Program Files
- PSModulePath: C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules
- PUBLIC: C:\Users\Public
- PYTHONPATH: C:\Program Files\PostgreSQL\16\pgAdmin 4\python
- SESSIONNAME: RDP-Tcp#0
- SystemDrive: C:
- SystemRoot: C:\Windows
- TEMP: C:\Users\MECWIN~1\AppData\Local\Temp\2
- TMP: C:\Users\MECWIN~1\AppData\Local\Temp\2
- USERDOMAIN: Mecwin-Nethra-M
- USERDOMAIN_ROAMINGPROFILE: Mecwin-Nethra-M
- USERNAME: mecwin-mkr
- USERPROFILE: C:\Users\mecwin-mkr
- windir: C:\Windows
Общее время запуска сервера pgAdmin4: 0.014 сек
2024-09-18 12:51:19,997: ОШИБКА pgadmin: Таблица(ы) [‘query_history’, ‘database’, ‘sharedserver’, ‘macros’, ‘user_macros’, ‘user_mfa’] отсутствуют в базе данных
Обратная трассировка (последний вызов последним):
Файл “C:\Program Files\PostgreSQL\16\pgAdmin 4\web\pgAdmin4.py”, строка 103, в
app = create_app()
^^^^^^^^^^^^
Файл “C:\Program Files\PostgreSQL\16\pgAdmin 4\web\pgadmin_init_.py”, строка 473, в create_app
run_migration_for_sqlite()
Файл “C:\Program Files\PostgreSQL\16\pgAdmin 4\web\pgadmin_init_.py”, строка 440, в run_migration_for_sqlite
backup_db_file()
Файл “C:\Program Files\PostgreSQL\16\pgAdmin 4\web\pgadmin_init_.py”, строка 368, в backup_db_file
os.rename(SQLITE_PATH, backup_file_name)
PermissionError: [WinError 32] Процесс не может получить доступ к файлу, так как он используется другим процессом: ‘C:\Users\mecwin-mkr\AppData\Roaming\pgAdmin\pgadmin4.db’ -> ‘C:\Users\mecwin-mkr\AppData\Roaming\pgAdmin\pgadmin4.db.20240918125119’
Ответ или решение
Ваш вопрос о проблеме с доступом к серверу pgAdmin 4 на вашем Azure Windows сервере очень важен. Судя по предоставленным данным, вероятная причина проблемы заключена в конфликтах доступа к файлам и отсутствующих таблицах в базе данных.
Решение:
-
Убедитесь, что pgAdmin не запущен:
Прежде чем продолжить, убедитесь, что все экземпляры pgAdmin 4 завершены. Проверьте диспетчер задач Windows (Task Manager) и закройте все процессы, связанные с pgAdmin или Python. -
Проверьте активные соединения с базой данных:
Ошибка, связанная сPermissionError
, указывает на то, что файл данныхpgadmin4.db
может быть открыт в другом процессе. Убедитесь, что нет других запущенных процессов, использующих этот файл:- Перезагрузите сервер или устройство, чтобы освободить использованный файл.
- Если это невозможно, используйте инструмент для выявления процессов, которые используют файлы (например, Process Explorer).
-
Разрешения на доступ к файлам:
Проверьте, что ваша учетная запись имеет необходимые разрешения на чтение и запись к файлам в директорииC:\Users\mecwin-mkr\AppData\Roaming\pgAdmin\
. Для этого:- Откройте свойства папки
pgAdmin
. - На вкладке "Безопасность" проверьте, что ваша учетная запись имеет полный доступ.
- Откройте свойства папки
-
Создайте резервную копию базы данных:
Если запустится и присоединится к базе данных, сначала создайте резервную копию.- Найдите файл
pgadmin4.db
, удалите его или переименуйте, чтобы устранить проблему с доступом. После этого pgAdmin создаст новый файл базы данных.
- Найдите файл
-
Проверьте настройки конфигурации:
Убедитесь, что в файлеconfig_local.py
настройки сервера указаны правильно. Проверьте SAP (Service API) и параметры подключения к базе данных. -
Параметры брандмауэра:
Вы также упомянули, что разрешили трафик на порт 5050, но убедитесь, что pgAdmin использует именно этот порт. Если вы используете другой порт для подключения к серверу базы данных, проверьте соответствующие разрешения в брандмауэре. -
Доступ к веб-интерфейсу:
Запустите pgAdmin через веб-браузер, указав адресhttp://localhost:5050
или другой порт, если это необходимо. Убедитесь, что ваш браузер может получить доступ к этому URL. - Логи и отладка:
Если проблема не устранена, посмотрите дополнительные журналы ошибок pgAdmin для лучшего понимания проблемы, которая может возникнуть. Эти журналы могут находиться по адресу:C:\Users\mecwin-mkr\AppData\Roaming\pgadmin4\pgadmin4.log
Если все вышеприведенные шаги не решат проблему, попробуйте полностью переустановить pgAdmin 4, чтобы убедиться, что не осталось некорректных настроек или поврежденных файлов.
Надеюсь, эта информация поможет вам решить возникшую проблему. Если будут дополнительные вопросы, не стесняйтесь обращаться за помощью.