Category - PostgreSQL

PostgreSQL 文字コード指定

$ /usr/bin/initdb --encoding=UTF8 --no-locale -D /var/lib/pgsql/data

read more

PostgreSQL 8.4.2 インストール

# adduser postgres
# passwd postgres
# mkdir /usr/local/pgsql
# chown postgres.postgres -R /usr/local/pgsql/
# chmod 777 -R /usr/local/src/
# cd /usr/local/src/
# ls
# tar xvzf postgresql-8.4.14.tar.gz
# cd postgresql-8.4.14
# ./configure
# yum install readline-devel
# ./configure --prefix=/usr/local/pgsql
# make
# make install
# chown postgres.postgres -R /usr/local/pgsql/

# cd /usr/local/pgsql/
# cd bin
# ./initdb -D /usr/local/pgsql/data

# cp contrib/start-scripts/linux /etc/init.d/pgsql
# chmod +x /etc/init.d/pgsql
# /etc/init.d/pgsql start

環境変数は指定なしでも動く

read more

PostgreSQL 曜日別バックアップ設定の例

0 6 * * 0 postgres run-parts /home/postgres/db.sun
0 6 * * 1 postgres run-parts /home/postgres/db.mon
0 6 * * 2 postgres run-parts /home/postgres/db.tue
0 6 * * 3 postgres run-parts /home/postgres/db.wed
0 6 * * 4 postgres run-parts /home/postgres/db.thu
0 6 * * 5 postgres run-parts /home/postgres/db.fri
0 6 * * 6 postgres run-parts /home/postgres/db.sat

run-parts 以下のディレクトリにバックアップ実行シェルを配置する

read more

phpPgAdmin 設置

最新版でもデフォルトのままではPostgreSQLに接続できないという不具合があります
以下の二点をお確かめください

phpPgAdmin/conf/config.inc.php 修正
【修正前】
$conf['extra_login_security'] = true;

【修正後】
$conf['extra_login_security'] = false;

phpPgAdmin/libraries/adodb/drivers/adodb-postgres64.inc.phpを編集。
 668行目と669行目をコメントアウト

【修正前】
 if (isset($host[2])) $str .= " sslmode=".adodb_addslashes($host[2]);
 else if (!empty($this->sslmode)) $str .= " sslmode=".$this->sslmode;

【修正後】
 //if (isset($host[2])) $str .= " sslmode=".adodb_addslashes($host[2]);
 //else if (!empty($this->sslmode)) $str .= " sslmode=".$this->sslmode;


read more

DB定義書出力プログラム

Perlモジュールを使ってエクセルファイルを作ります
ソースはこんな感じ。
設定を変えればPostgreSQL, MySQL 両方で使えます

#!C:\Perl\bin\perl
#!/usr/local/bin/perl

use strict;
use DBI;
use Jcode;
use Spreadsheet::WriteExcel;
use DBIx::DBSchema;

#設定
my $DSN = 'dbi:mysql:DB名:サーバー名';
my $DB_USER = 'ユーザー名';
my $DB_PASSWD = 'パスワード';
my $XLS_FILE = '出力ファイル名';

my $dbh = DBI->connect($DSN, $DB_USER, $DB_PASSWD) or die $DBI::errstr;
my $xls = Spreadsheet::WriteExcel->new($XLS_FILE);
my $schema = new_native DBIx::DBSchema $dbh;

for my $table ($schema->tables()) {
my $work = $xls->addworksheet("$table");

$work->write(0, 0, 'INDEXES');
my $index_ref = $dbh->selectall_arrayref("SHOW INDEX FROM $table");
write_worksheet($work, $index_ref, 1);

$work->write(3 + $#{$index_ref}, 0, 'COLUMNS');
my $column_ref = $dbh->selectall_arrayref("DESCRIBE $table");
write_worksheet($work, $column_ref, 4 + $#{$index_ref});
}

$dbh->disconnect;


sub write_worksheet {
my($work, $ref, $offset) = @_;
for my $row (0 .. $#{$ref}) {
for my $col (0 .. $#{$ref->[$row]}) {
$work->write($row + $offset, $col, $ref->[$row]->[$col]);
}
}
}

read more

テーブル単位のdump

pg_dump -t TABLE_NAME DB_NAME > dump.out

read more

phpPgAdminインストール

PostgreSQLの管理をブラウザから行えるというツールです。PHPでできています。
http://phppgadmin.sourceforge.net/ ここから最新版をダウンロードします

展開後、phpPgAdmin-4.0.1conf/config.inc.php 編集
phpMyAdmin と違ってID,PASSを設定ファイルに書く必要はありません。
編集すべき点はわずか
$conf['servers'][0]['host'] = 'DBサーバーのIPアドレス';
$conf['extra_login_security'] = true;
 ID,PASSにroot,administrator,postgresなどありきたりなものを使っている場合は false にする

基本的にここだけでOKです サーバーにアップロード

例のごとくBasic認証をかけます
Alias /pgadmin/ "/usr/local/phpPgAdmin/"

Options -Indexes FollowSymLinks MultiViews Includes ExecCGI
AcceptPathInfo On
AllowOverride All
Allow from all


これで http://ホスト/pgadmin/ でアクセスできるようになります。

その後、htpasswd -c /usr/local/apache2/conf/.htpasswd ユーザー名
パスワード入力  でパスワードファイル作成
               *ユーザー名、パスワードは任意
/usr/local/phpPgAdmin/に .htaccess ファイル作成

touch .htaccess
vi .htaccess
【記述内容】
AuthType Basic
AuthUserFile /usr/local/apache2/conf/.htpasswd
AuthGroupFile /dev/null
AuthName "Enter password"
Require valid-user

chmod 666 /usr/local/apache2/conf/.htpasswd
/usr/local/apache2/bin/apachectl restart

これで認証がついたphpPgAdminが使えるはずです

read more

Recent entry

Search

Tag Cloud

Page Top