我刚刚在Windows上安装了Postgres v10.4,并使用pgadmin创建了一个名为analysis的新数据库。它在那里,我可以在pgadmin中看到它,它有一个表。但是,我无法使用psql连接到此数据库。
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做什么,但我发现的是我可以用postgres连接到db postgres。有一个\l
命令,它显示3个数据库(其中2个,template0和template1)我甚至无法在pgadmin中看到。
如何连接到我刚刚在pgadmin中创建的数据库(分析)?任何人都可以解释我在pgadmin下登录的用户,如果它与'postgres'不同,如果不是,那我怎么能在psql中看不到我在pgadmin中可以看到什么?
template0和template1被称为骨架数据库。当您使用CREATE DATABASE命令postgres复制现有数据库。默认情况下,template1数据库用于创建新数据库。
我认为你的pgadmin和psql连接到不同的集群。 postgresql中的集群是单个服务器实例中的一个或多个数据库的集合
您发布的图片未显示pgadmin浏览器的完整视图。但是如果有2个集群,那么你可以在pgadmin中看到“Servers(2)”。要查找每个群集的运行端口,请右键单击相应的群集并选择属性,然后单击连接选项卡。这里可以看到端口号。然后使用该端口连接到psql中的集群。