PostgreSQL(psql)の接続と切断

psqlの接続と接続、指定したデータベースへの接続

普段はMySQLを使用しているので、PostgreSQLとはDBへの接続方法やDBの選択や終了などを違うので簡単にまとめてみました

psqlへの接続

PostgreSQLへのデータベースへの接続は、「psql」という、コマンドラインベースのツールを利用します。
データベースへの接続方法は、「psql -U postgres」で接続できます。psqlに接続できると「postgres=# 」の表示に変わります

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# データベースに接続します
$ psql -U postgres
psql (9.2.24)
Type "help" for help.
postgres=#
# postgresユーザーにスイッチしてから、psql を叩いてもデータベースに接続できます
# su - postgres
Last login: Fri Oct 1 10:58:30 JST 2021 on pts/0
-bash-4.2$ psql
psql (9.2.24)
Type "help" for help.
postgres=#
# postgresユーザー以外では、「psql」コマンドを叩いてもログインはできないので、roleがないので、ログインできません
# psql
psql: FATAL: role "root" does not exist
# データベースに接続します $ psql -U postgres psql (9.2.24) Type "help" for help. postgres=# # postgresユーザーにスイッチしてから、psql を叩いてもデータベースに接続できます # su - postgres Last login: Fri Oct 1 10:58:30 JST 2021 on pts/0 -bash-4.2$ psql psql (9.2.24) Type "help" for help. postgres=# # postgresユーザー以外では、「psql」コマンドを叩いてもログインはできないので、roleがないので、ログインできません # psql psql: FATAL: role "root" does not exist
# データベースに接続します
$ psql -U postgres
psql (9.2.24)
Type "help" for help.

postgres=# 

# postgresユーザーにスイッチしてから、psql を叩いてもデータベースに接続できます
# su - postgres
Last login: Fri Oct  1 10:58:30 JST 2021 on pts/0
-bash-4.2$ psql
psql (9.2.24)
Type "help" for help.

postgres=# 

# postgresユーザー以外では、「psql」コマンドを叩いてもログインはできないので、roleがないので、ログインできません
# psql
psql: FATAL:  role "root" does not exist

指定したデータベースに接続する

MySQLでは「use DB名」で、指定したデータベースに接続できましたが、PostgreSQLでは、「\c DB名」となります。また、psqlコマンドで、「psql -U postgres -d DB名」でも、指定したDBに接続できます

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# testshop という、データベースに接続します。
# データベース一覧を表示します
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
testdb | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
# testdbに接続します
postgres=# \c testshop
You are now connected to database "testdb" as user "postgres".
testdb=#
# psqlに接続時にデータベースを指定してログインもできます」
-bash-4.2$ psql -d testdb
psql (9.2.24)
Type "help" for help.
testdb=#
# testshop という、データベースに接続します。 # データベース一覧を表示します postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- testdb | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (4 rows) # testdbに接続します postgres=# \c testshop You are now connected to database "testdb" as user "postgres". testdb=# # psqlに接続時にデータベースを指定してログインもできます」 -bash-4.2$ psql -d testdb psql (9.2.24) Type "help" for help. testdb=#
# testshop  という、データベースに接続します。

# データベース一覧を表示します
postgres=# \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
-----------+----------+----------+-------------+-------------+-----------------------
 testdb    | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(4 rows)

# testdbに接続します
postgres=# \c testshop
You are now connected to database "testdb" as user "postgres".
testdb=# 

# psqlに接続時にデータベースを指定してログインもできます」
-bash-4.2$ psql -d testdb
psql (9.2.24)
Type "help" for help.

testdb=# 

psqlへの切断する

psqlコマンドを終了するには、MySQLのように「exit」や「crtl 」+「c」とかやっても終了しません。
\q」で終了します。この終了方法しらないと、終了方法がわからずに結構焦ります

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
postgres=# \q
postgres=# \q
postgres=# \q

 

 

スポンサーリンク

0
0