Psql команда не найдена windows

Обновлено: 30.06.2024

/home/andrei/bin:/home/andrei/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Program Files (x86)/Common Files/Oracle/Java/javapath_target_1128437:/mnt/c/ProgramData/Oracle/Java/javapath_target_5252250:/mnt/c/Windows/System32:/mnt/c/Windows:/mnt/c/Windows/System32/wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0:/mnt/c/Program Files/OpenVPN/bin:/mnt/c/Program Files (x86)/Microsoft SQL Server/Client SDK/ODBC/130/Tools/Binn:/mnt/c/Program Files (x86)/Microsoft SQL Server/140/Tools/Binn:/mnt/c/Program Files (x86)/Microsoft SQL Server/140/DTS/Binn:/mnt/c/Program Files (x86)/Microsoft SQL Server/140/Tools/Binn/ManagementStudio:/mnt/c/Program Files/MiKTeX 2.9/miktex/bin/x64:/mnt/c/Users/andreyolegovich_ru/Documents/Software/axis2-1.6.2:/mnt/c/Users/andreyolegovich_ru/Documents/Software/axis2-1.6.2/bin:/mnt/c/Windows/System32/OpenSSH:/mnt/c/Program Files/TortoiseSVN/bin:/mnt/c/Program Files/Microsoft SQL Server/Client SDK/ODBC/130/Tools/Binn:/mnt/c/Program Files/Microsoft SQL Server/140/Tools/Binn:/mnt/c/Program Files/Microsoft SQL Server/140/DTS/Binn:/mnt/c/Program Files (x86)/Intel/Intel(R) Management Engine Components/DAL:/mnt/c/Program Files/Intel/Intel(R) Management Engine Components/DAL:/mnt/c/Program Files/TortoiseGit/bin:/mnt/c/Program Files/Git/cmd:/mnt/c/Program Files/nodejs:/mnt/c/Program Files/Intel/WiFi/bin:/mnt/c/Program Files/Common Files/Intel/WirelessCommon:/mnt/c/Program Files/PuTTY:/mnt/c/Users/andreyolegovich_ru/AppData/Local/Continuum/anaconda3:/mnt/c/Users/andreyolegovich_ru/AppData/Local/Continuum/anaconda3/Library/mingw-w64/bin:/mnt/c/Users/andreyolegovich_ru/AppData/Local/Continuum/anaconda3/Library/bin:/mnt/c/Users/andreyolegovich_ru/AppData/Local/Continuum/anaconda3/Scripts:/mnt/c/Users/andreyolegovich_ru/AppData/Local/Programs/Python/Python36/Scripts:/mnt/c/Users/andreyolegovich_ru/AppData/Local/Programs/Python/Python36:/mnt/c/Users/andreyolegovich_ru/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/andreyolegovich_ru/AppData/Local/atom/bin:/mnt/c/Users/andreyolegovich_ru/AppData/Local/Programs/Python/Python36-32:/mnt/c/Users/andreyolegovich_ru/AppData/Local/Programs/Python/Python36-32/Scripts:/mnt/c/Program Files (x86)/Nmap:/mnt/c/Program Files (x86)/Mozilla Firefox:/mnt/c/Users/andreyolegovich_ru/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/andreyolegovich_ru/AppData/Local/Programs/Fiddler:/mnt/c/Program Files/JetBrains/PyCharm Community Edition 2018.3.2/bin:/mnt/c/Users/andreyolegovich_ru/AppData/Roaming/npm:/mnt/c/Program Files/Intel/WiFi/bin:/mnt/c/Program Files/Common Files/Intel/WirelessCommon:/mnt/c/Users/andreyolegovich_ru/AppData/Local/Programs/Microsoft VS Code/bin:/snap/bin

ERROR: character with byte sequence 0xd0 0x9a in encoding "UTF8"
has no equivalent in encoding "WIN1252"

Скорее всего Вы создали базу данных, и даже смогли туда что-то импортировать, например, из .csv файла.

Но сделать SELECT * FROM table; уже не получается, потому что кодировка базы и кодировка файла не совпадают.

Нужно привести файл и БД к одной кодировке - пересоздайте БД в utf8, например.

Как проверить кодировки я писал выше - Проверка кодировок БД

Как указать кодировку при создании БД - Создание БД

ERROR: database "db" is being accessed by other users

Если Вы делаете DROP DATABASE db; и получаете

ERROR: database "db" is being accessed by other users
DETAIL: There are 2 other sessions using the database.

Значит где-то ещё не закрыто подключение к БД. Например, Вы открывали её через pgAdmin.

Нужно найти это подключение и закрыть

FATAL password authentication failed for user postgres

Если вы логинитесь в pgAdmin, но не помните пароль - его можно поменять через терминал

Если вы пытаетесь прочитать из файла, а получаете

Значит у postgres недостаточно прав для чтения из файла. Простое добавление прав на чтение вроде

chmod +r file.csv

Проблему, скорее всего, не решит.

ERROR: COPY quote must be a single one-byte character

Если вы пытаетесь прочитать из файла, а получаете

ERROR: COPY quote must be a single one-byte character
SQL state: 0A000

Скорее всего присутствует какой-то лишний символ в QUOTE, например

ERROR: date/time field value out of range

Если вы пытаетесь прочитать из .csv файла, а получаете

ERROR: date/time field value out of range: "" HINT: Perhaps you need a different "datestyle" setting. CONTEXT: "" SQL state: 22008

Скорее всего ваш текущий datestyle не совпадает с тем, который используется в .csv файле.

datestyle - это порядок записи даты. Может быть День - Месяц - Год (DDMMYYYY), Год - Месяц - День (YYYYMMDD) или, например американский стиль Месяц - День - Год (MMDDYYYY)

Это всё актуально если тип столбца указан как дата date. Можно изменить тип на char тогда datestyle уже не нужно настраивать.

Стилей много и если они не совпадают - получается что месяц принимает значение больше 12.

Как вариант - можно перед выполнение скрипта временно изменить свой datestyle.

Например, если нужно импортировать данные из .csv с американским стилем - перед импортом добавьте

set datestyle to "US";

psql: could not connect to server: No such file or directory

Если вы выполнили

И получили ошибку

psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

Очень часто данная ошибка возникает вследствии того, что не была инициализирована база данных.

Initializing database . OK

Подробнее про инициализацию базы данных PostgreSQL на примере для CentOS Linux читайте в статье

pg_basebackup: could not connect to server: could not connect to server: No route to host

Если вы пытаетесь сделать реплику

pg_basebackup -h 192.168.56.109 -U repluser -D /var/lib/pgsql/data --xlog-method=stream

pg_basebackup: could not connect to server: could not connect to server: No route to host Is the server running on host "192.168.56.109" and accepting TCP/IP connections on port 5432?

sudo firewall-cmd --zone=public --add-port=5432/tcp --permanent

sudo firewall-cmd --reload

sudo firewall-cmd --list-ports

Failed to stop postgresql.service: Unit postgresql.service not loaded

Причин может быть много но среди новичков самая распространённая - попытка остановить postgresql из под пользователя postges

Например, в моём терминале я по приглашению bash-4.2$ вижу, что зашёл как postgres

Приглашение изменится на

И затем уже можно останавливать сервер

sudo systemctl stop postgresql
sudo systemctl status postgresql

● postgresql.service - PostgreSQL database server Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled) Active: inactive (dead) Jun 09 12:20:24 localhost.localdomain systemd[1]: Unit postgresql.service entered failed state. Jun 09 12:20:24 localhost.localdomain systemd[1]: postgresql.service failed. Jun 09 12:21:59 localhost.localdomain systemd[1]: Starting PostgreSQL database server. Jun 09 12:22:00 localhost.localdomain systemd[1]: Started PostgreSQL database server. Jun 10 19:10:02 localhost.localdomain systemd[1]: Stopping PostgreSQL database server. Jun 10 19:10:03 localhost.localdomain systemd[1]: Stopped PostgreSQL database server. Jun 10 22:14:18 localhost.localdomain systemd[1]: Starting PostgreSQL database server. Jun 10 22:14:19 localhost.localdomain systemd[1]: Started PostgreSQL database server. Jun 11 10:11:15 localhost.localdomain systemd[1]: Stopping PostgreSQL database server. Jun 11 10:11:16 localhost.localdomain systemd[1]: Stopped PostgreSQL database server.

ERROR: WAL level not sufficient for making an online backup

Вы хотите настроить онлайн бэкап, например с помощью команды

Но получаете ошибку

ERROR: WAL level not sufficient for making an online backup
HINT: wal_level must be set to "archive" or "hot_standby" at server start.

Нужно узнать расположение конфигурационного файла postgresql.conf

Password: config_file ------------------------------------- /var/lib/pgsql/data/postgresql.conf (1 row)

Нужно установить wal_level = hot_standby

NOTICE: WAL archiving is not enabled

Вы заканчиваете бэкап, например с помощью команды

psql -c "SELECT pg_stop_backup();"

Но получаете предупреждение

NOTICE: WAL archiving is not enabled; you must ensure that all required WAL segments are copied through other means to complete the backup

! Не удалось найти локальную команду psql! Для помощи установка psql, см. local-postgresql

Я не могу найти ничего полезного в ссылке, которую он мне дает (это просто ссылки на инструкции, которые я уже использовал, но дальше по странице), и я не могу найти эту ошибку где-нибудь еще.

Если я пропустил все, что вам нужно знать, чтобы ответить на этот вопрос, просто дайте мне знать. Я новичок во всем этом и учу себя, когда иду.

У меня была такая же ошибка даже после установки Postgres локально. Но после просмотра этого Я видел, что "pqsl" не был в PATH, поэтому я тогда сделал

который работал у меня

С тех пор я решил это сам. Когда я запустил heroku pg:info , он сказал, что номер версии 9.1.8, я был локально запущен 9.2

установка 9.1.8 и обеспечение того, что Path указывает на соответствующую папку, решила проблему.

Убедитесь, что вы установили toolbelt, поскольку psql установлен по умолчанию.

Однако вам также необходимо убедиться, что вы установили локальную копию PostgreSQL; если вы не используете toolbelt, вы не сможете найти собственный клиент psql.

Предполагая, что вы установили локальную копию PostgreSQL, убедитесь, что вы можете выполнить psql из командной строки напрямую (убедитесь, что PATH установлен правильно). Если команда не выполняется, проверьте свою PATH, если она выполняется, посмотрите, можете ли вы подключиться через строку подключения PSQL, представленную на панели управления Heroku. Если вы можете подключить переустановить toolbelt, если вы не можете подключить резервную базу данных разработчика и повторите попытку.

Если все еще есть проблемы, я бы посоветовал обратиться за поддержкой в ​​службу поддержки Heroku после проверки отсутствия проблем API, перечисленных на странице состояния здесь.

Установите PATH. Чтобы узнать PATH вашего psql script (на Mac), откройте оболочку sql script из вашего устройства поиска в приложении /Postgres. Это даст вам подсказку о том, где он установлен. Это открыло окно, в котором говорилось, что оно находится здесь:/Library/PostgreSQL/8.4/scripts/runpsql.sh

Затем я устанавливаю переменную PATH из окна терминала, введя: $ PATH = "/Library/PostgreSQL/8.4/bin: $PATH"

Вы также можете подключиться к оболочке, открыв оболочку непосредственно из папки установки postgres. Затем введите учетные данные. Если вы не знаете учетные данные, вот как их выяснить:

Что касается Postgres, я продолжаю получать эту ошибку несколько раз, хотя я уже установил местоположение папки bin в переменной пути в Windows 8. Что-то еще мне не хватает?

(Я не могу публиковать фотографии, так как у меня недостаточно репутации)

Просто обновление, потому что я пробовал его в Windows 10, вам нужно указать следующий путь: ;C:\Program Files\PostgreSQL\9.5\bin ;C:\Program Files\PostgreSQL\9.5\lib

Вы можете сделать это либо через CMD, используя set PATH [the path] или из моего

компьютер => свойства => расширенные настройки системы => переменные среды => системные переменные

Затем ищите путь.

Важно: не заменяйте уже имеющиеся ПУТЬ, просто добавьте один рядом с ними следующим образом ;C:\Program Files\PostgreSQL\9.5\bin ;C:\Program Files\PostgreSQL\9.5\lib

Обратите внимание : в Windows 10, если вы выполните следующее: компьютер => свойства => дополнительные системные настройки => переменные среды => системные переменные> выберите ПУТЬ, вы фактически получите возможность добавить новую строку. Нажмите Edit, добавьте расположение папок / bin и / lib и сохраните изменения.

Затем закройте командную строку, если она открыта, а затем запустите ее снова. попробуйте psql --version Если он дает вам ответ, то все в порядке, если нет, попробуйте echo %PATH% и посмотрите, был ли добавлен заданный вами путь или нет, и правильно ли он добавлен.

Всегда лучше установить предыдущую версию или при установке убедитесь, что вы указали '/ data' в отдельной папке каталога «C: \ data»

Простое решение, которое не упоминалось в этом вопросе: перезагрузите компьютер после объявления переменной пути.

Мне всегда приходится перезагружать - путь никогда не обновляется, пока я не сделаю это. И когда я перезапускаю, путь всегда обновляется.

Найдите свой двоичный файл, в котором он сохранен. получить путь в конечной шахте

Затем найдите свой локальный путь к данным пользователя, он в основном

Теперь все, что нам нужно, это ввести следующую команду в пути двоичного терминала:

Введите этот путь в системную переменную среды .

В этом случае я использую версию 10. Если вы проверите папку postgres, вы увидите свои текущие версии.

В моем случае я использовал следующие строки в отдельных строках:

Даже если уже немного поздно, я решил проблему PATH, удалив все пробелы.

У меня работает сейчас.

Убедитесь, что путь действительно ведет к исполняемым файлам. Я использую версию 11, и она не работала, пока она не была указана в качестве пути:

Возможно, так устроена версия 11, или я как-то испортил установку, но с тех пор у меня не было проблем.

Если вы попробовали все ответы, но голова все еще кружится, не забудьте сменить версию на ту, которую вы скачали.

Например, не копируйте просто

Я кружил головой. Надеюсь это поможет.

У меня была ваша проблема, и она снова заработала (в Windows 7).

Моя установка сначала действительно работала. Я установил postgres, а затем настроил системные переменные PATH с помощью >. Ключевое слово psql в командной строке не дало ошибок.

Я удалил указанные выше переменные PATH по одной, чтобы проверить, действительно ли они нужны. Psql продолжал работать после того, как я удалил путь к lib, но перестал работать после того, как я удалил путь к bin. Когда я вернул bin, он все еще не работал, то же самое и с lib. Я закрыл и снова открыл командную строку между попытками и проверил путь. Проблема сохранялась, хотя путь был идентичен тому, каким он был при работе. Я его перепрошил.

Я удалил и переустановил postgres. Проблема не исчезла. Это, наконец, сработало после того, как я удалил пробелы между "; C: . " в путях и повторно сохранил.

Не уверен, действительно ли виноваты были пробелы. Возможно, переменные среды просто нужно было изменить и обновить после установки.

Я также все еще не уверен, нужны ли пути как lib, так и bin, поскольку, похоже, для старых конфигураций пути существует какая-то устаревшая память. Однако я не хочу проверять это снова.

Возможно, ваш сервер не запускается автоматически в Windows 10, и вам нужно запустить его самостоятельно после установки пути Postgresql, используя следующую команду в cmd:

Вы должны находиться в каталоге «C: \ Program Files \ PostgreSQL \ 11.4 \ bin», чтобы выполнить указанную выше команду.

enter image description here

Для работы с psql вам все еще нужно находиться в каталоге bin

Все работает вроде хорошо. Когда запускаю SQL Shell (psql) (т.е. командная строка, которая установилась вместе с PostgreSQL 9.2), то после ввода всех данных аутентификации, спокойно можно пользоваться:

Но проблема в следующем. Почему-то не получается использовать psql через оригинальный виндовский cmd. MySQL я спокойно юзаю через консоль cmd (mysql команду ввел и Welcome to the MySQL monitor. ). А здесь вынужден запускать этот SQL Shell (psql), т.к. через cmd почему-то не могу авторизоваться.

Вот что я делаю:

1. В pg_hba.conf имею такие настройки:

С этими настройками пробую подключится через виндовский cmd:

Пароль ввожу тот, что указал, когда устанавливал Postgre. User - моя учетная запись на этой Винде XP. Но пишет, что не "не прошел проверку. "

2. Меняю установки в pg_hba.conf - ставлю trust:

С этими настройками пробую подключится тоже через виндовский cmd:

Хотя в мануале написано, что при trust любой пользователь хоста сожет подключится к Postgre. Для SQL Shell (psql) это так и есть, могу подключится, не вводя пароля. А через cmd не получается. Какую-то роль требует.

3. Меняю установки в pg_hba.conf и pg_ident.conf на следующие:

Снова пробую подключится через виндовский cmd:

В общем использовал все три способа из мануала, которые вроде должны работать, но не работают.

У меня вопрос.
Может просто действительно нельзя пользоваться Postgre через виндовский cmd? Поэтому не получается и я просто теряю время. Или можно, но я что-то где-то не прописал. Подскажите, что делаю не так.

Точно! Вот эта строка:

. и все заработало. :)

Но пока пытался разобраться в этом, успел создать второй кластер (команда initdb -D directory). И появился теперь второй вопрос.

Получается, что теперь у меня на машине два кластера:

Первый - это тот, что создался автоматически во время инсталяции Postgre (т.е. в директории предложеной по умолчанию). У меня в C:\Program Files\PostgreSQL\9.2\data

Второй - этот тот, что я только что создал.

Вопрос. Могут ли они сосуществовать на одной локальной машине вместе? Просто когда запустил pgAdmin, там только одна запись про postgres (т.е. это тот, что установился по умолчанию):

У меня два вопроса:

1) Почему pgAdmin не показывает второй кластер? (хотя не знаю, должен ли он показывать)

Я не могу получить доступ к PostgreSQL через командную строку в Windows. Хотя я могу создавать и обновлять базы данных, получать к ним доступ через PGAdminIII и отправлять их в Heroku, я не могу получить к ним доступ напрямую через командную строку с помощью команды psql.

Когда я пытаюсь создать базу данных с помощью команды

Означает ли это, что путь может быть перенастроен для правильного подключения? Или мне нужно переустановить? Я переустанавливал несколько раз и не смог установить правильный путь. В настоящее время у меня есть пути к /bin и /lib, добавленные к моей системной и пользовательской (: Umezo) путям, но по-прежнему нет доступа из командной строки.

Моя информация как ниже:

Я в основном следил за этими источниками здесь и здесь. Я установил 32-разрядную версию 9.1, потому что некоторые источники предлагали проблемы с 64-разрядной версией.

pg_hba.conf

postgresql.conf

pg_ident.conf

настройка переменной PATH в PostreSQL в Windows 7

Я тоже столкнулся с этой проблемой. Я использую Git Bash, поэтому приглашение Windows в стиле Unix для Windows.

Вот что я сделал:

В Windows 7 перейдите к:

Затем добавьте эту строку в существующее значение переменной PATH:

Теперь закройте консоль и перезапустите ее.

Вернитесь в каталог вашего приложения Rails. В моем случае это достигается с помощью:

Затем попробуйте еще раз:

Все, что вам нужно сделать, это изменить переменную PATH, чтобы включить каталог bin вашей установки PostgreSQL.

Объяснение того, как изменить переменные среды, приведено здесь:

Чтобы убедиться, что путь задан правильно, вы можете использовать:

в командной строке.

Настройки Путь к Windows для Postgresql

затем добавьте это в конце того, что вы найдете в

после этого продолжайте нажимать OK

например. У меня есть имя базы данных FRIENDS и пользователь MEE.. это будет

вам будет предложено указать пароль данного пользователя.
Благодаря

Я использую Windows 8, и вышеупомянутые решения не сработали для меня. Я понизил Postgres с 9,4 до 9,3. Человек, он работал:)

Читайте также: