PostgreSQLでトリガー、関数を一覧表示

2014/05/07 | PostgreSQL

MySQLみたく「show triggers;」ってしてみたけどダメだった。PostgreSQLではSQLでシステムテーブルを走査するのがお決まりっぽい。

トリガーを一覧表示。

SELECT tgname FROM pg_trigger;

関数一覧を表示(自分の作った関数だけ)。

SELECT TBL_PR.proname FROM pg_proc TBL_PR LEFT JOIN pg_user TBL_US ON TBL_PR.proowner = TBL_US.usesysid WHERE TBL_US.usename = ‘hoge';

PostgreSQLで正規表現

正規表現出来るって知らなかった。っていうか、そういうのを使う必要に迫られたことがなかったので、調べもしなかったってだけかな。

select count(*) from tablename where colname like ‘山%';

select count(*) from tablename where colname ~ ‘^山';

select count(*) from tablename where colname ~~ ‘山%';

1番目と2番目は検索してもよく見かけるんだけど、3番目でも同じ結果が返ってくる。チルダ2個ってのはLIKEと同じってことなのかな。

phpPgAdminでログイン出来ない

2013/10/21 | PostgreSQL

気乗りはしないが、仕事でPostgreSQLを使うことになった。別にPostgreSQLが嫌い、とかそういうことじゃなくて、ずっとMySQLを使っていたというだけなんだけど。

とりあえず都度コンソール作業が面倒なので、phpPgAdminを使おうと思ったのだが、ちょっとだけはまった。

ログインが出来なかった。

最初はパスワードを設定していないせいだと思ったので、パスワードを設定してみたけどダメだった。

結論はphpPgAdminの設定で「$conf[‘extra_login_security’] = true;」と設定されているところをfalseに書き換えるところだった。デフォルトのtrueでは、postgresとかrootといったユーザでは接続できないらしい。ここを書き換えて無事接続できることを確認した。

試行錯誤の最中で、いろいろパスワードを設定するためのコマンドがあることを知った。

  1. alter role postgres with password ‘********';
  2. alter user postgres encrypted password ‘********';
  3. alter user postgres with password ‘********';

どう違うのか調べようかと思ったが、この部分は自分の担当ではないので放置(最終的には昔使っていた3番目でパスワードを設定した)。

pg_hba.confとかpostgresql.confとかinitdbとか・・・。思い出しながらの作業って嫌だな。

PostGISをyumでインストール

2012/07/23 | PostgreSQL

以前、PostGISをyumでインストールする方法を書いた。

そしてCentOSでPostGISが使えるようになった

久々にPostGISをインストールすることになったので、チャレンジしようと思ったけどリンク先がなくなっていた。それに今度はCentOS6系になるので、別のやり方でインストールした。

PostGIS自体はRedHatやCentOSではパッケージが提供されていないが、Fedoraプロジェクトではパッケージが用意されている。今回はFedoraプロジェクトから提供されているRHEL用のリポジトリEPELを使ってインストールすることにした。

まず最初にEPELを使えるようにする。手順としてはキーを取得してインポートしておき、yumのリポジトリにEPELを追加することになる。

wget http://ftp.riken.jp/Linux/fedora/epel/RPM-GPG-KEY-EPEL-6
rpm –import RPM-GPG-KEY-EPEL-6
rm -f RPM-GPG-KEY-EPEL-6
vi /etc/yum.repos.d/epel.repo

最終行でファイルを新規作成する。記述内容は以下のとおり。

[epel]
name=EPEL RPM Repository for Red Hat Enterprise Linux
baseurl=http://ftp.riken.jp/Linux/fedora/epel/6/$basearch/
gpgcheck=1
enabled=0

例によってenabled=0に設定しておき、必要に応じてオプション指定してこのリポジトリを使うことにする。

ここからは簡単で、yumでPostGISをインストールすることができる。

yum –enablerepo=epel install postgis

依存関係からpostgis以外にもたくさんインストールしなければならないようだが、しかたがないので全てインストールする。

これだけで完了。簡単だった。あと、本当に使えるようになっているのかどうかは確認しなくてはならないけれど。

PostgreSQLのバックアップ

2011/04/10 | PostgreSQL

PostgreSQLの自動バックアップのメモ。

PostgreSQLのバックアップ用ユーザを追加しておく(Linuxユーザをbackupとして作っておいて同じ名前にする)。その際superuser権限を与えておく。ユーザ作成はpostgresになってから。

createuser backup

pg_hba.confでbackupユーザをlocalhostからパスワードなしでログイン出来るよう設定する。具体的には以下の行を追加する。

local all backup trust

これで以下のコマンドでバックアップできるようになる。

pg_dumpall -U backup > dump.sql


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net