PostgreSQLには、専用のターミナルとしてpsqlが付属しています。psqlを利用すると手軽にデータベースへ接続し、SQLを実行することができます。
psqlでデータベースに接続する最も単純なコマンドは次のとおりです。
[postgres]$ psql データベース名 ユーザー名 |
PostgreSQLは独自のユーザー管理機構を持っています。そのため、OSのユーザーとPostgreSQLのユーザー間に直接的な関連はありません。
ただし、一般的なPostgreSQLのコマンドは、データベースに接続するユーザーの指定を省略した場合、そのコマンドを実行したOSのユーザーの名前を使用して接続する仕組みになっています。上記のコマンドの場合もユーザー名を省略すると、postgresユーザーでデータベースに接続します。
ユーザーの作成
いまのところ、PostgreSQLのユーザーはスーパーユーザーのpostgresしか存在していないので、一般ユーザーを作成します。
例えば、user1という名前の一般ユーザーを作成するには、postgresユーザーでcreateuserコマンドを実行します。このとき、PostgreSQLは起動している必要があります。
[postgres]$ createuser user1 Shall the new role be a superuser? (y/n) n Shall the new role be allowed to create databases? (y/n) y Shall the new role be allowed to create more new roles? (y/n) n |
createuserコマンド実行時の質問は、それぞれ以下のことを確認しています。
ここでの「ロール」とは、ユーザーとグループの両方を含む概念です。本連載では、ロールについては複雑な使い方をしませんので、ユーザーと同じと思っていただいて構いません。
psqlでデータベースに接続
PostgreSQLでは、initdbコマンドでデータベースクラスタを初期化した時点で、template0、template1、postgresという3つのデータベースが自動的に作成されます。
template0とtemplate1データベースはユーザーがデータベースを作る際にひな型として使用されるデータベースです。
また、postgresデータベースはPostgreSQL 8.1以降に用意されているデータベースで、主にPostgreSQLのコマンドによって使用されます。どれも必要なデータベースなので削除してはいけません。なお、template1とpostgresデータベースには接続することができます。
例えば、user1ユーザーでpostgresデータベースに接続する場合、psqlコマンドで次のように接続します。
[postgres]$ psql postgres user1 postgres=> //一般ユーザーの場合のプロンプト表示 |
一般ユーザーでデータベースに接続した場合、プロンプトは 「=>」になり、スーパーユーザーの場合は「=#」になります。
終了するには、\qコマンドを実行します。
psqlのコマンドはこのようにすべて「\」で始まります。psqlのコマンド一覧は\?コマンドで見ることができます。
以上が、インストールからデータベースへ接続するまでの流れです。本連載ではここで導入したPostgreSQLをもとに、調査からチューニングまでのひととおりの流れを紹介していきます。
次回は、PostgreSQLの運用やチューニングについて解説するうえで用いるベンチマークソフトウェアについて見ていきます。
Copyright © ITmedia, Inc. All Rights Reserved.