私的Q&Aメモ
データベースを使用するためにインストールするものは?
# yum install postgresql postgresql-server
インストールしたらユーザpostgresが勝手に作成されたけど…
postgresqlのスーパーユーザpostgresが勝手に作成されます。
でも、ユーザとしてパスワードが作成されていないので、作成しておきましょう。
# passwd postgres
それと、データベース用のユーザpostgresにもパスワードを設定しておきましょ。
postgres=# ALTER ROLE postgres with password 'hogehogehoge';
まず、やることは?
データベースクラスタを初期化しましょう。
postgres=# initdb -E UTF8
- Eでデータベースのデフォルトエンコードを指定する。
※注意。
初期化をする前にpostgresqlデーモンが起動している場合は
停止すること。起動していると変な挙動になる。
データベースクラスタってナンスカ?
データベースのデータ本体や設定ファイルを保存する領域のこと。
自分の環境ではデフォルトで/var/lib/pgsql/data
次は?
データベースデーモンを起動しよう。
# /etc/rc.d/init.d/postgresql start
これで、データベースデーモンが起動したよ〜。
データベースユーザを作成する
-d | 当該ユーザに対し、データベース作成を許可 |
-D | 当該ユーザに対し、データベース作成を禁止 |
-E | データベースに格納するユーザのパスワードを暗号化 |
-l | 当該ユーザに対しログインを許可 |
-L | 当該ユーザに対しログインを禁止 |
-P | パスワードプロンプトを表示 |
-r | 当該ユーザに対し、新しいロールの作成を許可 |
-R | 当該ユーザに対し、新しいロールの作成を禁止 |
-s | 当該ユーザをスーバーユーザとする |
-S | 当該ユーザをスーパーユーザにしない |
postgres# createuser -DElPRS hoge_user
※ユーザを作成できるのはスーパーユーザとCREATEROLE権限を持つユーザのみ。
データベースユーザを削除する
postgres# dropuser hoge_user
データベースのユーザ一覧を知りたい。
postgres=# SELECT * FROM pg_shadow;
とか、
postgres=# \du
データベースの削除はどうするか?
postgres# dropdb hoge_db
スキーマの削除は?
postgres=# DROP SCHEMA my_schema;
スキーマのリストを知りたい
postgres=# \dn
テーブルを作成するには?
postgres=# CREATE TABLE my_schema.my_table (id integer,data text);
テーブルを削除したい
postgres=# DROP TABLE my_schema.my_table;