PSQL говорит, что база данных не существует, но она существует в pgadmin - PullRequest
0 голосов
/ 27 июня 2018

Я только что установил Postgres v10.4 в Windows и создал, используя pgadmin, новую базу данных с именем analysis. Это там, я вижу это в pgadmin, и в нем есть одна таблица. Однако я не могу подключиться к этой базе данных, используя psql.

enter image description here

C:\WINDOWS\system32>psql -d postgres -U postgres
psql (10.4)
WARNING: Console code page (850) differs from Windows code page (1252)
         8-bit characters might not work correctly. See psql reference
         page "Notes for Windows users" for details.
Type "help" for help.

postgres=# l
postgres-# \l
                                                  List of databases
   Name    |  Owner   | Encoding |           Collate           |            Ctype            |   Access privileges
-----------+----------+----------+-----------------------------+-----------------------------+-----------------------
 postgres  | postgres | UTF8     | English_United Kingdom.1252 | English_United Kingdom.1252 |
 template0 | postgres | UTF8     | English_United Kingdom.1252 | English_United Kingdom.1252 | =c/postgres          +
           |          |          |                             |                             | postgres=CTc/postgres
 template1 | postgres | UTF8     | English_United Kingdom.1252 | English_United Kingdom.1252 | =c/postgres          +
           |          |          |                             |                             | postgres=CTc/postgres
(3 rows)


postgres-# \q

C:\WINDOWS\system32>psql -d analysis -U postgres
psql: FATAL:  database "analysis" does not exist

C:\WINDOWS\system32>

Я не знаю, что я делаю с psql, но все, что я нашел, это то, что я могу подключиться к db postgres как пользователь postgres. Есть команда \l, которая показывает 3 базы данных (2 из которых, template0 и template1), которых я даже не вижу в pgadmin.

Как я могу подключиться к базе данных (анализу), которую я только что создал в pgadmin? Кто-нибудь может объяснить, под каким пользователем я вошел в pgadmin, если он отличается от 'postgres', а если нет, то почему я не вижу в psql то, что вижу в pgadmin?

1 Ответ

0 голосов
/ 27 июня 2018

template0 и template1 известны как скелетные базы данных. Когда вы используете команду CREATE DATABASE, postgres копирует существующие данные. По умолчанию база данных template1 используется для создания новой базы данных.

Я думаю, что ваши pgadmin и psql подключены к другому кластеру. Кластер в postgresql - это набор из одной или нескольких баз данных в одном экземпляре сервера

Изображение, которое вы разместили, не отображает полный вид браузера pgadmin. Но если есть 2 кластера, вы можете увидеть в pgadmin как «Servers (2)». Чтобы найти работающий порт каждого кластера, щелкните правой кнопкой мыши соответствующий кластер и выберите свойства, затем нажмите вкладку подключения. Здесь номер порта можно увидеть. Затем подключитесь к кластеру в psql, используя этот порт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...