PostgreSQL
極めて簡単な使い方
以下はLinuxを対象とし、既に他人が構築した何らかのデータベースが存在し、それに対して操作を行うことを目的とする。
スーパユーザになる
PostgreSQLがインストールされた時点でLinux上のpostgresというアカウントが作成されている。これは、PostgreSQLデータベースに対するどのようなことでも可能なスーパーユーザである。 作成された時点ではパスワードは設定されておらず(/etc/shadowのパスワード欄は「!!」)、root以外のユーザはpostgresになることはできない。この状態でよいのであれば、postgresのパスワードを設定する必要はない。
※Linux上のアカウントがスーパーユーザであるという点はFirebirdとは異なる。FirebirdのsysdbaはLinux上アカウントではなく、Firebird自体が管理しているアカウント。
rootからは以下のようにしてpostgresユーザになる。
su - postgres
※ハイフンは前のユーザ(root)の環境を引き継がないという意味。
以下の操作はpostgresユーザであることを前提とする。
データベース一覧を表示する
psqlを使ってデータベース一覧を表示する。psqlには、コマンド投入後何かを行ったあとすぐにLinuxプロンプトに戻るモードと、対話的なモードとがあるが、以下ではデータベース一覧を表示して、すぐにLinuxシェルに戻る。
psql -l
データベースをバックアップする
既に存在するデータベースをバックアップする。以下の方法はデータベースが稼動中でも正しく行われる。
pg_dump データベース名 > バックアップファイル
バックアップ先ファイルにはテキスト形式で書き込まれている。なお、スキーマだけをバックアップするのは以下
pg_dump -s データベース名 > バックアップファイル
データベースをリストアする
データベースをリストアするには、最初に空のデータベースを作成し、次にバックアップファイルを読み込ませる必要がある。
createdb -T template0 データベース名 psql データベース名 < バックアップファイル
データベース作成時に指定するテンプレートとしてはtemplate0, template1がある。通常はtemplate0で良い模様。
ユーザを作成する
postgres以外のユーザを作成しておく、これは別にLinuxのユーザである必要はない(その必要があると記述のある資料も見つかるが。。)。
createuser ユーザ名
このとき以下のようなメッセージが表示される。
Shall the new user be allowed to create databases? (y/n) Shall the new user be allowed to createmore new users? (y/n)