実践Linux
CentOS5/6.5        CentOS5/6.5 目次へ  TOP(HOME)へ

postgreSQL・データベース(CentOS6.5の場合)   2014年9月





●旧サーバーのPostgreSQLデータベースがある場合は、そのDB全体をバックアップしておく。
# su - postgres
# pg_dumpall > /tmp/all.db
これをUSBメディアなどにコピーしておく。

コピーしておいたバックアップ・ファイルを/tmp/all.dbに置く。

PostgreSQLをテスト使用していた場合は、新規状態にしておく。
 PostgreSQLサービスを停止。
 /var/lib/pgsql/dataを削除。

@データベースクラスタの初期化(インストール後に一度だけ行う。postmasterサービスを起動しないで行う)
# su - postgres
$ initdb -E UTF8 --no-locale -D /var/lib/pgsql/data
$ exit
基本文字コードをUTF8に指定。locale機能は問題を起こしやすいので--no-localeにする。

やり直しをする場合
 PostgreSQLサービスを停止。
 /var/lib/pgsql/dataを削除。

Selinux
# restorcon -RF /var/lib/pgsql

A/var/lib/pgsql/data/pg_hba.confの設定
host all all 192.168.7.0/24 trust の追加。

書式
local 【データベース】 【ユーザー】 【接続許可方法】
host 【データベース】 【ユーザー】 【許可IPアドレス】 【接続許可方法】
【データベース】: all, sameuser, samegroup  (sameuserはユーザーと同名のデータベースということ)
【接続許可方法】 : trust, reject, md5, crypt, password, krb4, krb5, ident, pam

B/var/lib/pgsql/data/postgresql.confの設定
ネットワークからの接続を許可する
   listen_addresses = '*'
   port = 5432
さらにパーティショニング下でのアクセスを高速にするパラメータを有効にする。
   constraint_exclusion = on

Cpostgresqlサービス(postmaster)を起動。

Dバックアップ・ファイルを戻す。
以前のDB全体をバックアップ保存( $ pg_dumpall > /tmp/all.db )している場合は、postmasterを起動してそのall.dbを次のように展開して、データベースやテーブルをpostgreSQLユーザー情報ごと継承できる(createuserで作成するデータベース所有者も自動的に作成される)。
  # su - postgres
  $ psql -f /tmp/all.db template1 (または、$ psql template1 < /tmp/all.db )

Eデータベース所有者のUNIXユーザーを作っておく。
ここでは、例としてuser1を作成。
# useradd -g postgres -s /bin/bash -u 505 user1  (ユーザーID:505。-Mを付けるとホームを作らないが、ホームがないとコマンドを実行するたびに/rootに振られて困ることになる。)
# passwd user1
シェルは最初/bin/bashにしておかないとsuでログインできない=データベース作成のコマンド等が扱えない。データベースを作ってしまえば/sbin/nologinに変更しておいてもよい。

Dでない場合は、最初からpostgreSQLユーザーの登録、データーベースの作成へと進んでいく。
●ユーザーの登録(postgresqlにuser1を登録する)
# su - postgres  postgreSQLの管理者postgresで作業する。
$ createuser user1  (パスワードの設定もしたい場合は、$ createuser -P user1)
スーパーユーザとするか=n
データベース作成権限=y
ロール作成権限(新しいユーザーを追加できるか)=n
パスワードの設定は、pg_passwdコマンドか後述の「設定の変更」で。
ユーザーを削除するには、$ dropuser user1

●データベースの作成
このままマスターのpostgresで作業する場合は、作ったデータベースはpostgresの所有となる。
所有をuser1で作りたい場合は、user1で作業する(ただし、上でyを選択していることが前提)。
# su - user1
$ createdb user1 -E UTF8  普通、ユーザー名と同じ名前を付ける。

$ psql -l で作成したデータベース一覧がわかる。

削除するには、$ dropdb user1


●phpでデータベースにアクセスできるようにする
php-pgsqlのインストール(CentOS6.5の場合、最初はインストールされていない。)
# yum install php-pgsql
すでにhttpdが起動している場合は、httpdの再起動が必要。

selinuxの設定(mysqlの場合は必要なかったが、postgresqlは必要)
# getsebool -a | grep httpd
# setsebool -P httpd_can_network_connect_db 1

/etc/httpd/conf.d/php.confの確認
 AddHandler php5-script .php
 AddType text/html .php
 DirectoryIndex index.php

/etc/php.iniの編集
 今のところなにもしなくても大丈夫なようです。
 これを変更するとhttpdを再起動しておくこと。

言語は、UTF-8で統一しておくとよい。
<head>
<meta http-equiv="Content-Language" content="ja">
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>テスト</title>
</head>


●windowsのexcel等からのアクセス  以下詳細はADOのページを参照
サーバー側の準備
@iptablesで5432ポートを開き、相互にやりとりできるようにしておく。
APostgreSQLの設定確認
/var/lib/pgsql/data/postgresql.conf
  ネットワークからの接続を許可する
  listen_addresses = '*'
  port = 5432
/var/lib/pgsql/data/pg_hba.conf
  host all all 192.168.7.0 255.255.255.0 trust 等の確認。
B再起動

Windows8.1
postgreSQLとのやりとり用ドライバODBCの入手
PostgreSQLのODBCドライバは以下のURLからダウンロードできる。
http://www.postgresql.org/ftp/odbc/versions/msi/
最新の32ビット版を入手して、インストール。2014/9現在、psqlodbc_09_03_0300-1.zipが最新。
64ビット版だとうまくいかない。

コントロールパネル→システムとセキュリティ→管理ツール→ODBCデータソース(32ビット)→システムDSN→追加→PostgreSQL Unicode
そのまま、保存。



TOP(HOME)へ

目 次

特別企画
Raspberry Piで遊ぶ

HOME(全体のシステム構成&目次)

CentOS7
CentOS7のインストール〜ネットワークの設定ほか
CentOS7の新機能(systemdとfirewalld)
ダイレクトルールを使ったfirewallの強化
DNS(BIND)サーバー
Webサーバー
  Webでファイルの受け渡し
  アクセス解析ツールAwstats
  Wordpressでブログ構築
FTPサーバー
FTPS(FTP over SSL/TLS)
Mail(Dovecot&Postfix)サーバー
Sambaサーバー
MariaDB(MySQL)サーバー
DHCPサーバー
SSHサーバー
VNCサーバー
ドメインの追加

CentOS5〜6
ネットワーク&ファイアウォール(iptables)
DNS(BIND)サーバー
DHCPサーバー
メールサーバー(基本)
メールサーバー/実際の運用
Webサーバー
  WebDAVによるファイル共有
  Webでファイルのやり取り
  アクセス解析ツールawstats
  namazuで全文検索
  WordPressブログサイト構築
  EC-CUBEショッピングサイト構築
FTPサーバー
ファイルサーバー・Samba
データベースpostgreSQL
  ExcelからpostgreSQLを操作
データベースMySQL
SSHサーバー
VNC
SSL/TLSを利用した暗号化通信
openVPN
ストリーミングサーバー
    C++ RTMP Server
    Helix server Basic
ドメインの追加
Xen・仮想化
特定ディレクトリに容量制限

SELinux
SELinux基本設定
新しいタイプとポリシー・モジュールを作成してみる
マクロを利用したteファイルの記述
新しいドメインを導入してみる

coLinux
Fedora11で試す

Cプログラミング目次
X11プログラム
サイエンス・プログラム

計測・プログラム
秋月電子のデーターロガーpico ADC-16
「今すぐ使えるパソコン計測USBマイコン基板」に付属のTRZ1102
センサーの使用例

Glade2/GTK+を使ってみる
テキスト・ビューで簡易エディター
ドローイングエリアで自動描画
放物線運動(pango、cairoも試してみる)
これらを、GTK+のみで書き出す

フォントについて
ネットワーク・プログラミング
postgreSQL接続
CGI
ファイル操作

●その他
印刷機関連開発 刷版絵柄面積率測定
数独をExcelで解く