Mint 12(Lisa) でPosgreSQLを使ってみました。
Lisa より 標準で, 9.1 をサポートしたようです。(コントリビューターの皆様感謝です)
以前, 11 で, Open SCGパッケージを使って入れましたが, その必要はもうなし。
1. インストール
Synaptic パッケージマネージャで検索できます。
postgre(supported version) マークのついたやつをインストール
以下のパッケージがインストールされます
postgresql-9.1
postgresql-client9.1
postgresql-client-common
postgresql-common
2. サービスのチェック
サービス名は postgresql です
chkconfig を使います ( sudo apt-get install chkconfg でインストールできます)
> chkconfig postgresql
postgresql on
※ どうやらインストール後すでにデーモン化されている模様
サービスのファイルは /etc/init.d/postgresql
start, stop, status などが使えます
> /etc/init.d/postgresql status
Running clusters: 9.1/main
※というわけでどうやらすでに initdb を実行し, データベースクラスタはできているようです
3. インストールディレクトリをチェック
> echo $PGDATA
といきごんでやっても出てきませんでした
/var/lib/postgresql/9.1/main の中におもなファイルがあります
ただし, こいつの権限は
> ls -l
drwx------ 13 postgres postgres 4096 2011-12-13 20:38 main
オーナーが postgres で 700 Mint の通常ユーザではアクセス不可です。
> su -
でスーパーユーザーになって中身を見ていきましょう
/var/lib/postgresql/9.1/main/base
これがデータベースクラスタです。 この中の 数字がついたディレクトリが各データベースのディレクトリになります。
4. 設定ファイル
PostgreSQLの設定ファイルは, /etc/postgresql/9.1/main の中にあります。
pg_hba.conf : Host Base Access
postgresql.conf : Configuration File
5. アクセステスト
インストールした状態では, postgres というユーザがデータベースクラスタに作られた状態です。
現在の Mint ユーザおよびrootユーザではアクセスできません。
※ OSユーザと PostgreSQLのユーザは違います(MySQLでも同じですよね)
しかし, -U オプションを省略すると, OSユーザと同じ名前でアクセスしようとします。
> psql -U postgres
でいけると思いきやダメでした。 OSユーザと何かしら関係するみたいです。
ですので,
> su -
> su postgres
これで, postgres というユーザになりましょう(ここではOSのユーザです)
Mint (Mint とは限らないですが) では, インストール時に /var/lib/postgresql
を ホームとする, ユーザ postgres が作成されます postgres は, デフォルトのSUPERUSERで PostgreSQLのすべての権限をもちます
6. Mint ユーザで接続したい
やっぱり, postgres ではなくて, 最初に作ったMint ユーザで接続したい
そんなあなた(私もです)
> createrole -P <mintのユーザ名> 権限にまつわるオプション
ex) 私の環境(CREATEDB権限だけで十分)
createrole -P mint -dl
対話型でスーパーユーザの権限やパスワードを聞かれます。
Mint のOSユーザと, PostgreSQLのユーザを一致させると, ちょっとだけ便利です。
※個人的には, CREATEDB 権限もしくは LOGIN権限だけを与えておけば, Webアプリの
開発, 運用はいいと思います。
ターミナルを再度開きなおして,
> psql postgres
postgres=#
と打つと, postgres というデータベースに接続します(postgres=# というのが, PostgreSQLのプロンプトになります
!注意
psql コマンドは, データベース名を省略すると, ユーザと同じ名前のデータベースへの接続を試みます。 私の場合 mint というデータベースにつなぎにいきます。 ないのでエラーですが,
postgresというデータベースは初期状態で存在します。
ユーザは PostgreSQLのプロンプトで \du とうつと, 権限とともに, 一覧が表示されます
7. コマンド
コマンドはどこのディレクトリ?
> whereis psql
/usr/bin/psql /usr/share/man/man1/sql.1.gz
/usr/bin にシンボリックリンクが貼られいているようです。
ほか, pg_ctl, createdb, createuser なども同じです。
8. Mint ユーザでデータベースを作って接続
> createdb test
> psql test
test=#
createdbコマンドでtest というデータベースをつくって, それに接続します
コマンドとか, 運用などのまとめを書きたいな。
0 件のコメント:
コメントを投稿