Перейти к содержимому

Имя psql не распознано как имя командлета

  • автор:

После установки postgreSQL не работает команда «psql»?

После установки postgreSQL не работает команда «psql».
Ввожу psql -V или другие команды для работы с бд, но пишет:
«psql : Имя «psql» не распознано как имя командлета, функции, файла сценария или выполня
емой программы. Проверьте правильность написания имени, а также наличие и правильность
пути, после чего повторите попытку.».
Powershell рекомендует ввести «.\psql»., далее просят ввести пароль юзера. Ввожу пароль и ничего не происходит.
Помогите, пожалуйста.
Программу переустанавливал, в чём может быть проблема? Не смог нагуглить ответ.

  • Вопрос задан 03 авг. 2023
  • 680 просмотров

Комментировать
Решения вопроса 1

vabka

Токсичный шарпист

1. через cd открой папку, куда установлен psql
2. Попробуй ./psql -V в той папке.
3. Для подключения к базе — попробуй все параметры явно передать (юзернейм, адрес, имя базы)

Ответ написан 03 авг. 2023
Иван Филипов @oprk21fjin3 Автор вопроса

Сработало. То бишь все команды нужно писать через «./psql» , а не «psql», как написано в статьях. Спасибо!

vabka

Иван Филипов, если пропишешь в PATH, то сможешь по нормальному вызывать)
Иван Филипов @oprk21fjin3 Автор вопроса

Василий Банников, а такой вопрос простой, конечно. где про это можно почитать вообще? Точнее, как лучше искать?

Установка и базовая настройка PostgreSQL в Windows 10

date

30.08.2022

user

itpro

directory

Windows 10, Windows Server 2016

comments

комментариев 14

PostgreSQL — это бесплатная объектно-реляционная СУБД с мощным функционалом, который позволяет конкурировать с платными базами данных, такими как Microsoft SQL, Oracle. PostgreSQL поддерживает пользовательские данные, функции, операции, домены и индексы. В данной статье мы рассмотрим установку и краткий обзор по управлению базой данных PostgreSQL. Мы установим СУБД PostgreSQL в Windows 10, создадим новую базу, добавим в неё таблицы и настроим доступа для пользователей. Также мы рассмотрим основы управления PostgreSQL с помощью SQL shell и визуальной системы управления PgAdmin. Надеюсь эта статья станет хорошей отправной точкой для обучения работы с PostgreSQL и использованию ее в разработке и тестовых проектах.

Установка PostgreSQL 11 в Windows 10

Для установки PostgreSQL перейдите на сайт https://www.postgresql.org и скачайте последнюю версию дистрибутива для Windows, на сегодняшний день это версия PostgreSQL 11 (в 11 версии PostgreSQL поддерживаются только 64-х битные редакции Windows). После загрузки запустите инсталлятор.

где скачать PostgreSQL 11 для windows 10 x64

В процессе установки установите галочки на пунктах:

  • PostgreSQL Server – сам сервер СУБД
  • PgAdmin 4 – визуальный редактор SQL
  • Stack Builder – дополнительные инструменты для разработки (возможно вам они понадобятся в будущем)
  • Command Line Tools – инструменты командной строки

установка PostgreSQL 11 и дополнительных компонентов

Установите пароль для пользователя postgres (он создается по умолчанию и имеет права суперпользователя).

PostgreSQL - задать пароль пользователю postgres

По умолчание СУБД слушает на порту 5432, который нужно будет добавить в исключения в правилах фаерволла.

5432 - порт PostgreSQL по-умолчанию

Нажимаете Далее, Далее, на этом установка PostgreSQL завершена.

Доступ к PostgreSQL по сети, правила файерволла

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

Запустите командную строку от имени администратора. Введите команду:

netsh advfirewall firewall add rule name=»Postgre Port» dir=in action=allow protocol=TCP localport=5432

  • Где rule name – имя правила
  • Localport – разрешенный порт

Либо вы можете создать правило, разрешающее TCP/IP доступ к экземпляру PostgreSQL на порту 5432 с помощью PowerShell:

New-NetFirewallRule -Name ‘POSTGRESQL-In-TCP’ -DisplayName ‘PostgreSQL (TCP-In)’ -Direction Inbound -Enabled True -Protocol TCP -LocalPort 5432

После применения команды в брандмауэре Windows появится новое разрешающее правило для порта Postgres.

правила бранжмауэра для доступа к PostgreSQL по сети

Совет. Для изменения порта в установленной PostgreSQL отредактируйте файл postgresql.conf по пути C:\Program Files\PostgreSQL\11\data.

Измените значение в пункте port = 5432 . Перезапустите службу сервера postgresql-x64-11 после изменений. Можно перезапустить службу с помощью PowerShell:

Restart-Service -Name postgresql-x64-11

служба postgresql-x64-11

Более подробно о настройке параметров в конфигурационном файле postgresql.conf с помощью тюнеров смотрите в статье.

Утилиты управления PostgreSQL через командную строку

Рассмотрим управление и основные операции, которые можно выполнять с PostgreSQL через командную строку с помощью нескольких утилит. Основные инструменты управления PostgreSQL находятся в папке bin, потому все команды будем выполнять из данного каталога.

    Запустите командную строку.

Совет. Перед запуском СУБД, смените кодировку для нормального отображения в русской Windows 10. В командной строке выполните: chcp 1251

утилиты управления postgresql - C:\Program Files\PostgreSQL\11\bin

Основные команды PostgreSQL:

  • Проверка установленной версии СУБД: psql –V
  • Для создания новой базы данных воспользуйтесь утилитой createdb: createdb -U postgres testdb (где postgres суперпользователь, testdb новая база данных)Введите пароль суперпользователя. createdb -U postgres
  • Проверить список активных баз: Psql -U postgres –l (пароль) Psql -U postgres вывести список запушенных баз
  • С помощью инструмента createuser cоздадим нового пользователя: createuser –U postgres operator (где operator -имя нового пользователя) createuser –U postgres - создать пользователя
  • Предоставим пользователю привилегии суперпользователя (на практике этого делать не надо). Запустите интерактивную командную оболочку управления PostgreSQL (shell): psql –U postgres . С помощью SQL команды ALTER ROLE предоставим нужные права нашему пользователю: ALTER ROLE operator SUPERUSER CREATEROLE CREATEDB; . Мы предоставили пользователю права суперпользователя, права на создание ролей и баз данных.
  • Для выводы списка пользователей и ролей в СУБД выполните команду: \du

PostgreSQL (shell): psql командная строка

PgAdmin: Визуальный редактор для PostgresSQL

Редактор PgAdmin служит для упрощения управления базой данных PostgresSQL в понятном визуальном режиме.

  • Для запуска редактора запустите PgAdmin 4 в меню Пуск
  • Для доступа нужно ввести пароль суперпользователя postgres
  • В панели Servers вы можете раскрыть список активных БД.
    PgAdmin 4 в windows 10
  • В панели управления возможно быстро создать нового пользователя и группу, предоставить ему права. Для этого Откройте меню Object -> Create -> Create Login/Group.PgAdmin 4 создать пользователя
  • Для создания новой базы данных достаточно выбрать: Database в меню Object -> Create. В новом поле указать имя базы и владельца.
  • По умолчанию все созданные базы хранятся в каталоге base по пути C:\Program Files\PostgreSQL\11\data\base.

    Для каждой БД существует подкаталог внутри PGDATA/base, названный по OID базы данных в pg_database. Этот подкаталог по умолчанию является местом хранения файлов базы данных; в частности, там хранятся её системные каталоги. Каждая таблица и индекс хранятся в отдельном файле.

    Для резервного копирования и восстановления лучше использовать инструмент Backup в панели инструментов Tools. Для автоматизации бэкапа PostgreSQL из командной строки используйте утилиту pg_dump.exe.

    Query Tool: использование SQL запросов в PostgreSQL

    Для написания SQL запросов в удобном графическом редакторе используется встроенный в pgAdmin инструмент Query Tool. Например, вы хотите создать новую таблицу в базе данных через инструмент Query Tool.

    • Выберите базу данных, в панели Tools откройте Query Tool
    • Создадим таблицу сотрудников:

    CREATE TABLE employee
    (
    Id SERIAL PRIMARY KEY,
    FirstName CHARACTER VARYING(30),
    LastName CHARACTER VARYING(30),
    Email CHARACTER VARYING(30),
    Age INTEGER
    );

    Query Tool: использование SQL запросов в PostgreSQL

    Id — номер сотрудника, которому присвоен ключ SERIAL. Данная строка будет хранить числовое значение 1, 2, 3 и т.д., которое для каждой новой строки будет автоматически увеличиваться на единицу. В следующих строках записаны имя, фамилия сотрудника и его электронный адрес, которые имеют тип CHARACTER VARYING(30), то есть представляют строку длиной не более 30 символов. В строке — Age записан возраст, имеет тип INTEGER, т.к. хранит числа.

    После того, как написали код SQL запроса в Query Tool, нажмите клавишу F5 и в базе будет создана новая таблица employee.

    Для заполнения полей в свойствах таблицы выберите таблицу employee в разделе Schemas -> Tables. Откройте меню Object инструмент View/Edit Data.

    Здесь вы можете заполнить данные в таблице.

    редактор таблица в pgadmin

    После заполнения данных выполним инструментом Query простой запрос на выборку:
    select Age from employee;

    выполнить select в PostgreSQL с помощью PgAdmin

    Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

    How to start psql.exe

    I’m new to PostgreSQL (pg). I understand that in order to interact with pg, I must use psql.exe. In my system, I find psql.exe not once, but twice, why? ( C:\Program Files (x86)\pgAdmin 4\v2\runtime\psql.exe and C:\Program Files\PostgreSQL\10\bin\psql.exe ). I tried both, with identical (negative) results. In line with Q/A In PostgreSQL why does command line window disappear when I press Enter after entering my password?, now, instead of running psql.exe directly, I first opened a generic (Windows) command window and then ran psql.exe from within this generic command window; I then entered the password and hit Enter . In the generic (Windows) command window, I now got the message:

    psql: could not connect to server: Permission denied (0x0000271D/10013)
    Is the server running on host «localhost» (::1) and accepting TCP/IP connections on port 5432? FATAL: password authentication failed for user «User»

    This corresponds to the problem described (but not resolved) in the Q/A cited above. Other threads in this forum regarding pg password fails concern Linux / outdated passwords / new passwords after password changes. It’s said in other threads here re this question that in Windows, there is a file pgpass.conf . I find a help file libpq-pgpass.html which also says that, while on my system, there is no such file pgpass.conf (or anything else with «pgpass» except for the aforementioned html file). (W10 Prof 64 bit English) Second strategy: Within the Start menu, there is an entry «PostgreSQL»; under that — available by Enter — there is a sub-entry «SQL Shell (psql)»; so I tried that. From there only, I get the Windows cmd window, with «psql 10.1» and with (in [] it’s obviously the default values):

    Server [localhost]: I enter localhost; Database [postgres]: I enter postgres; Port [5432]: I enter 5432; Username [postgres]: I enter postgres; Password for user postgres: I enter the password which is "a". 

    From there, I get a warning re the Console code page which differs from Windows code page, but I then get the psql prompt

    postgres=# 

    and which works. On the other hand, with the first strategy above, I only get «Password:» and then, after entry of the real password (which is «a»), the «FATAL» error «password authentication failed for user «A»». Upon installation, I had created a superuser «postgres» with password «a», not a user «A»; on the other hand, I am user «A» which is my Windows admin (!) account (no other users than myself on my pc) and the cmd prompt I usually get («C:\Users\A>»); (but as expected,) no different result if I enter the whole path to psql.exe from the prompt «C:>». So my problem comes now down to this: When triggered from within the start menu, psql.exe works correctly since it asks me all the questions I can then answer correctly (as stated above), while when started with its full path from the cmd window (both full paths tried and enclosed in «» of course), it just asks for the «password» and then tells me that for some «user A», that password is wrong. Also, the full path to the (functioning) psql.exe from within the start menu is C:\ProgramData\Microsoft\Windows\Start Menu\Programs\PostgreSQL 10\psql.exe , and if I try to run that from with the cmd window, I get «(path) is not recognized as an internal or external command, operable program or batch file.», since in there, it’s «SQL Shell (psql).lnk», of which the properties are: «Target: «C:\Program Files\PostgreSQL\10\scripts\runpsql.bat»». So this is the solution, see my answer below.

    Имя psql не распознано как имя командлета

    Вопрос №22424 от пользователя Станислав Почековский в уроке «Подготовка к работе», курс «Основы реляционных баз данных»

    Команда $ sudo -u postgres createuser —createdb hexletbot не работе, пользователь не создается, вообще ни какой реакции. работаю на винде, много модифицировал команду все равно не помогает.

    Сработало только так: CREATE USER hexletbot WITH PASSWORD ‘fjshdedaw’ CREATEDB;

    Аналогично и создание базы данных: Так сработало: CREATE DATABASE hexlet; так нет: createdb hexlet

    Почему обертки не работают а только полноценные команды?

    Еще есть вопросы по копированию базы данных, не совсем понял порядок действий:

    1. git clone https://github.com/hexlet-components/pg-dump-example.git
    2. cd pg-dump-example
    3. Открываем Makefile и вводим команды оттуда? db-reset schema-load data-load/ psql hexlet < schema.sql/ psql hexlet < schema.sql/ итд?

    Пока результат таков (раз пример):

    К сожалению по windows не подскажу. Если есть возможность, работайте с pg на маке или линуксе.

    Хорошо. А по этому вопросу

    Еще есть вопросы по копированию базы данных, не совсем понял порядок действий: git clone https://github.com/hexlet-components/pg-dump-example.git cd pg-dump-example Открываем Makefile и вводим команды оттуда? db-reset schema-load data-load/ psql hexlet < schema.sql/ psql hexlet < schema.sql/ итд?

    Увы работать на линуксе или маке пока нет возможности. Мб сделаете пояснения для работающих на windows а то курс какой то однобокий получается.

    Мб сделаете пояснения для работающих на windows а то курс какой то однобокий получается.

    Мы изначально, в наших базовых курсах, говорим о том, что полноценная веб-разработка возможна только из под POSIX совместимых операционных системах, и сделали довольно много материала на тему того как их поставить настроить и использовать. Ваш продакшен все равно будет на линуксе.

    Открываем Makefile и вводим команды оттуда? db-reset schema-load data-load/ psql hexlet < schema.sql/ psql hexlet < schema.sql/ итд?

    https://guides.hexlet.io/ — вот здесь есть множество статей на тему как довести виндовс до линукса например через его подсистему Ubuntu или через вагрант.

    Вводим те команды которые написаны в README.md

    Господа, дайте же нормальные пояснение как работать с файлом Makefile. Как и в какой последовательно вводить команды оттуда, уже сколько бьюсь над этим. Подписка платная, хочется учиться а тут как квесты. а что же имел ввиду учитель. Может хоть пример реального ввода в консоль напишете.

    В ридми этого репозитория ровно три строки. Вы их выполнили?

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

    Created db hexlet — сделано.

    Created role with name of your system user — сделано.

    cd pg-dump-example — сделано.

    make # look at the Makefile — вот тут уже проблемы. как вводить команды make и далее из файла? или. полное непонимание.

    make # look at the Makefile — вот тут уже проблемы. как вводить команды make и далее из файла? или. полное непонимание.

    Перед вами и есть команда make , ее надо запустить и все. То что вы видите в ридми, это просто три команды подряд.

    Такой результат. $ make # look at the Makefile bash: make: command not found

    Какой еще вариант ставить Cygwin только? Мне нужно только чтобы терминале винды были полностью доступны команды linux.

    Это значит что не установлен мейк. Его надо установить.

    Оу, так вы не проходили наш курс по основам командной строки. Пройдите пожалуйста, станет сильно понятнее. Ну и git bash это не то. Вот тут рекомендации https://guides.hexlet.io/development-on-windows/

    Добрый день, на windows нужно установить gnuwin32 — make for windows, потом прописать в PATH (в моем случае — C:\Program Files (x86)\GnuWin32\bin ) и перезапустить консоль. в git-bash работает через make.exe

    Спасибо за gnuwin32. Теперь после ввода make такой результат это ок?

    $ make # look at the Makefile

    dropdb hexlet || true

    и все дальше просто ничего не происходит. При закрытии консоли вылетает окно — http://prntscr.com/m8ix3m

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

    Это какие-то виндовые особенности. Лучше конечно поставить ubuntu for windows.

    команда postgres «psql» не распознается в среде windows

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

    Я использую windows и использую командную строку с Ruby on Rails. Использование PostgreSQL 9.2, установленного с помощью установщика EnterpriseDB one-click.

    4 ответов

    предполагая, что вы установили PostgreSQL в Windows с установщиком PostgreSQL «One-click», упакованным EnterpriseDB, psql не добавляется к PATH автоматически. Это отчасти потому, что добавление его в путь может вызвать путаницу, когда у людей установлено несколько версий PostgreSQL.

    вам нужно указать полный явный путь к psql , например:

    или добавить psql для переменные среды, см. например этот руководство.

    Открыть Командную Строку

    если на строке выше не отображается версия psql, выполните следующие действия

    Откройте командную строку и повторите

    это потому, что между ; и ваш путь psql, поэтому он должен быть похож на *****;C:\Program Files\PostgreSQL.2\bin\ .

    если есть пробел после ****** ; тогда это не сработает. Вы действительно можете ввести %PATH% в командной строке cmd и посмотреть, как ваша переменная среды и пространство выглядит. Я пробовал оба случая для вас, первый с пространством имел ту же ошибку, о которой Вы упомянули, а второй без пространства работал.

    вам нужно установить как bin, так и путь lib в переменной среды PATH, разделенной точкой с запятой:

    %PROGRAMFILES\\%\с PostgreSQL 9.2 ОГРН;%PROGRAMFILES%\\с PostgreSQL 9.2\Либ

    Не могу установить PostgreSQL на Windows 10?

    Я не могу установить PostgreSQL, сделал все по инструкции, уже три раза сносил и заново переустанавливал, инструкция НЕ РАБОТАЕТ, или устарела. Система Windows 10.

    Скачал, все есть в папке C:\Program Files\PostgreSQL\10

    Все распаковал, все устанивилось, окно закрылось. Дальше сделал по инструкции — открыл командную строку, ввел

    setx PATH «%PATH%;C:\Program Files\PostgreSQL\10\bin»

    В ответ комп пишет: «Предупреждение. Сохраненные данные будут усечены до 1024 знаков. Успех. Указанное значение сохранено.»

    Далее, по инструкции закрыл командую строку, перезагрузился. И. Н-И-Ч-Е-Г-О, в командной строке при попытке ввести хотя бы psql выдается «psql» не является внутренней или внешней командой, исполняемой программой или пакетным файлом.

    Ну что еще то надо? Руки опускаются от этих бесконечных инструкций, которые не работают! Помогите, гуру Джанги….

    Похожие публикации:

    1. Как подписать оси в диаграмме в ворде
    2. Как разбить текст на две колонки в ворде 2007
    3. Где находятся библиотеки c
    4. Где программировать на си

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *