Ошибка подключения к Postgres из сценария пользовательского интерфейса TCL/TKLinux

Ответить
Anonymous
 Ошибка подключения к Postgres из сценария пользовательского интерфейса TCL/TK

Сообщение Anonymous »

Вроде нового в TCL/TK, более знакомый с сценариями CLI. У меня есть сценарий (ниже), чтобы установить связь с Postgres DB. Как только это сработает, я буду продолжать усилия по созданию редактора таблиц, поскольку тот, к которому у нас есть доступ, не будет работать так. />[*]NOT a privileged user
[*]NOT an expert in psql/postgres
[*]NO PERMISSION to install any software/patches
[*]NO PERMISSION to pgadmin
[*]NO Разрешение на ping
[*] нет разрешения на редактирование системных файлов, таких как pg_hba.conf, /etc/nsswitch.conf,/etc/hosts и т. Д.

Извините за все недостатки, пытаясь минимизировать некоторые вопросы. Уль -уль -уль -уль -ные
. /> Работа над удаленной системой через RDC (Windows 10 RDC to RHEL9) < /li>
Доступ CLI только в удаленной системе < /li>
Да, я знаю, что помещение пароля в скрипт не является безопасным, это для использования целей тестирования. 16.4 на x86_64-pc-linux-gnu, скомпилированный GCC (GCC) 7.3.1 20180712 (Red Hat 7.3.1-17), 64-битный < /p>
Вот мой скрипт: < /p>
package require Tcl
package require Tk

# Create Main Window
set mainWindow [tk::frame .main]
pack $mainWindow

# Variables
set dbHost ""
set dbName ""
set dbUser ""
set dbPass ""
set tableName ""

# Create UI Elements
label $mainWindow.hostLabel -text "Host:"
entry $mainWindow.hostEntry -textvariable dbHost

label $mainWindow.dbNameLabel -text "DataBase Name:"
entry $mainWindow.dbNameEntry -textvariable dbName

label $mainWindow.userLabel -text "User:"
entry $mainWindow.userEntry -textvariable dbUser

label $mainWindow.passLabel -text "Password:"
entry $mainWindow.passEntry -textvariable dbPass -show "*"

label $mainWindow.tableLabel -text "Table Name:"
entry $mainWindow.tableEntry -textvariable tableName

button $mainWindow.loginButton -text "Login" -command {loginToDatabase} -bg mediumseagreen

# Pack Layout
pack $mainWindow.hostLabel
pack $mainWindow.hostEntry
pack $mainWindow.dbName
pack $mainWindow.dbName
pack $mainWindow.userLabel
pack $mainWindow.userEntry
pack $mainWindow.passLabel
pack $mainWindow.passEntry
pack $mainWindow.tableLabel
pack $mainWindow.tableEntry
pack $mainWindow.loginButton

# Login Function
proc databaseLogin {} {
global dbHost dbName dbUser dbPass tableName

# Command to execute psql for given table
set command "psql -h $dbHost -d $dbName -U $dbUser -c 'SELECT * FROM $tableName LIMIT 1;'"

# Execute / Capature Output
set env(PGPASSWORD) $dbPass ;
set result [catch {exec $command} output]

# Check Result
if {$result == 0} {
tk_messageBox -message "Connection Success" -icon info
} else {
tk_messageBox -message "Connection Failed: $output" icon error
}

unset env(PGPASSWORD)
}
vwait forever
< /code>
Сообщение об ошибке: < /p>
Соединение не удалось! Причина: не смог бы выполнить "psql -h -d postgres -u -u -c 'select * from Limit 1'»: нет такого файла или каталога
для хоста я использовал как IP, так и полностью квалифицированное доменное имя, оба получения одинаковой ошибки. Из CLI нет проблем с тем, что я хочу. У меня есть .pgpass в $ дома. Кроме того, запуск оператора psql из CLI Works.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... -ui-script
Ответить

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

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

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

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

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