約 1,015,908 件
https://w.atwiki.jp/atwikimyj/pages/116.html
今回はpgADMINがpgSQLが動作しているPCではない別のPCからの操作を想定します。 pgSQLサーバが動作しているPCのインターフェイスの指定と、pgSQLサーバを外部 から操作するPCの認証に関する設定を行います。 [1]postgresqlのサーバーホスト内でどのインターフェイスを使うかの指定 サーバに複数のネットワークカードが存在したりする場合、特定にIPからし か通信を認めない、というような指定ができます。 デフォルトはlocalhostとなっており、内部からの操作のみ受け付けています。 たとえばpgADMINのようなクライアントソフトがpgsqlサーバと同じPCで使用 する場合はlocalhostでいいのですが、そうじゃない場合が多いと思います。 その場合はpgSQLのホストとなっているPCのIPアドレスを指定するか、もしくは 特に指定する場合がなければ * を指定します。 一応、pgSQLが動作しているPCのIPアドレスをifconfigで確認し、それを入れます。 cd /usr/local/pgsql/data vi postgresql.conf ここで以下の行 listen_addresses = localhost のlocalhostをpgSQLが動作するサーバPCのIPを指定する。 listen_addresses = 192.168.99.10 [2]pgSQLサーバを外部から操作するPCの認証に関する設定 pg_hba.confを書き換える。 ここはちゃんとした理解が必要。 [2-a]pgSQLsvrのホストが仮想PCの場合でGatewayにNATを使っている場合 ゲストOS(仮想PC)は固定されているので問題ない。クライアント側の IPがNATのもので有効ならばそれを指定すればいけるはず。 pg_hba.confを開き、修正する。 # "local" is for Unix domain socket connections only local all all trust # IPv4 local connections host all all 127.0.0.1/32 trust # IPv6 local connections host all all 1/128 trust # kaihatsu host all all 192.168.99.0/24 trust このような記述がある。pgSQLはこれを上から読んでいって、問題ない場合 のみ接続を許す。この記述の後ろに最終行のようにipアドレスを入れて ここからの接続を許可させる。(上記の例はVMwareでの設定なので パスワードや暗号化などの設定がないので注意) [2-b]pgSQLsvrのホストがリモートサーバの場合はいくつか気をつける 必要がある。 * 通信の暗号化 * パスワードによる認証 が最低限必要になる。 # "local" is for Unix domain socket connections only local all all trust # IPv4 local connections host all all 127.0.0.1/32 trust # IPv6 local connections host all all 1/128 trust # Remoto hostssl postgres 192.168.99.0/24 md5 ここで注意するのは、3つ目の要素にて、IPアドレスが たとえ単一であっても、 172.20.143.89 ではだめで、マスクを設定する必要がある。 マスクはスラッシュを使ったCIDR表記のみ許可され、 それ以外の表記だとエラーになります。 単一の場合はスラッシュの後ろのネットワークアドレス部 を示す値が32になります。 172.20.143.89/32 これでOK。 IPアドレスやCIDR表記についての説明は このページが詳しいです。 Tef-Room - Windowsセキュリティ対策 グローバル・プライベートIPアドレス、サブネットマスク、CIDR http //www.tef-room.net/main/ip-address.html http //www.tef-room.net/main/ip-address.html 関連 [pgSQL]pgSQLのユーザの追加・変更・削除 http //www32.atwiki.jp/atwikimyj/pages/115.html
https://w.atwiki.jp/atwikimyj/pages/71.html
■PostgreSQLインストール 参考にしたサイト↓ postgresql.org http //www.postgresql.org/download/ postgresql.jp http //www.postgresql.jp/document/current/html/installation.html 環境 CentOS4.5 (RH4.5のフリー版ね) ※VMserver上で起動しております。 インストールは下記サイトを大いに参考にしました。 CentOS5 に PostgreSQL インストール http //108bones.blog71.fc2.com/ (1)ディレクトリの作成 /usr/local/postgresql (2)ユーザの作成 username postgresql ,pwd password (3)postgreSQLのダウンロード ※ftpやる前に、、ftpでgetしたデータは 現在のカレントディレクトリに保存されます。 なので先に保存したいディレクトリに移動してから ftpやったほうが面倒がなくて良い。 # ftp ftp.postgresql.org ftp name ここでanonymousでログイン ftp password ここで何も入力せずエンター 下記にファイルはあるのでcdコマンドで移動 ftp //ftp.postgresql.org/pub/v8.2.5/postgresql-8.2.5.tar.gz ftp get postgresql-8.2.5.tar.gz これでダウンロード完了 (4)解凍 # cd /usr/local/src # tar txvz postgresql-8.2.5 (5)インストール # cd postgresql-8.2.5 # ./configure 珍しくエラーなし。 # gmake # gmake install (6)環境変数の編集 /etc/profile をEMACSで編集。下記を追加 ※このファイルはbashにて操作する場合の 初期設定ファイル(シェルスクリプトで記述) LD_LIBRARY_PATH・・bash起動時にライブラリを見に行く パスを指定。pgsqlのライブラリをこれで使うことができる PATH ・・bashでのコマンド入力時にはPATH内に定義された 実行ファイルを探し、あったらそれを実行する。なので ソフトをインストールした際にはPATHを追加してやらんと いかん。 ************************************* LD_LIBRARY_PATH=/usr/local/pgsql/lib export LD_LIBRARY_PATH PATH=/usr/local/pgsql/bin $PATH export PATH MANPATH=/usr/local/pgsql/man $MANPATH export MANPATH ************************************* 一応ログオフ、ログインしなおす。 (7)DBの初期化(クラスタの作成) 何をしているかというと、pgSQLが使うデータの 保存先ディレクトリを指定して、そこにクラスタを 設定します。 単純に保存先の設定ではなくて、その保存先にはいろんな pgSQL独自のデータがないといけないのでそのデータの 作成もします。 initdb というコマンドを使う。 ************************************* $ su - postgres initdb -D /usr/local/pgsql/data ************************************* ※initdb --helpでいろいろとコマンドが確認できる。 initdb -D (path) initdb --pgdata=(path) 上記は同じ意味。 http //www.officeyano.net/loadpgsql.htm (8)pgSQLの起動と状態確認 pg_ctl start pgSQLを起動します。 pg_ctl status pgSQLの現在の状態を確認します。 (9)pgSQLの自動起動 サーバマシンが起動する時に自動的にPostgreSQLが 起動するようにします。Linux用に提供されている 設定ファイルを使います。 /etc/rc.d/init.d/ 内のスクリプトはOS起動時に自動的に読み込まれ、実行 されます。なのでこのディレクトリにpgSQL自動実行 スクリプトを保存します。 postgres という名前のファイルをコピーします。 (なのでpostgresという文字列をbashでコマンドとして 打つと、pgSQL起動スクリプトを実行しようとします。 通常、OS起動している状態であればすでに起動している ので起動中のpgSQLのプロセスIDが表示され、すでに 起動してるよ!と怒られます) ファイルのオーナーをpostgresにします。なぜならこの ユーザでないとpgSQLが起動できないからです。 あとランレベルも下記のように設定します(わからんけど) ************************************* # cd /etc/rc.d/init.d/ # cp -p /usr/local/src/postgresql-8.2.5/contrib/start-scripts/linux postgres # chown root.root postgres # chmod 755 postgres # chkconfig --level 2345 postgres on ************************************* (10)pgSQLでのデータベース操作 psql -d (dbname) データベースとの接続(この後コマンドで データベースを操作します。 psql -l 現在のデータベースのリストが表示されます。 (11)pgSQL起動後の操作 mydb=# \dt mydb内のテーブル一覧が出ます。 mydb=# \df mydb内のファンクション一覧が出ます。 とりあえずこれでOKとおもわれ。
https://w.atwiki.jp/m_shige1979/pages/317.html
データベース初期化 su - postgres initdb --encoding=UTF-8 手動起動 pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/data/serverlog start 手動終了 pg_ctl -D /usr/local/pgsql/data stop 自動起動 ##スーパーユーザーへ切替 su - ##起動ファイルコピー cp /home/webadmin/src/postgresql-8.3.3/contrib/start-scripts/linux /etc/rc.d/init.d/postgres ##権限変更 chmod 755 /etc/rc.d/init.d/postgres ##登録 chkconfig --add postgres ##起動/終了/状態監視 /etc/init.d/postgres [start/status/stop] データベース作成 ##ユーザー作成 createuser -d -s -r -l -P testuser ##データベース作成 createdb -O testuser -W testdb ポート開放 /sbin/iptables -I INPUT -p tcp -m tcp --dport 5432 --syn -j ACCEPT /sbin/iptables -I INPUT -p udp -m udp --dport 5432 -j ACCEPT クライアント 以下の例ではクライアントXXXからサーバ192.168.10.141に接続する場合 html2 plugin Error このプラグインで利用できない命令または文字列が入っています。
https://w.atwiki.jp/atwikimyj/pages/114.html
[pgSQL] postgresql8.3.1 インストール http //www32.atwiki.jp/atwikimyj/pages/109.html [pgSQL] 環境変数の設定 http //www32.atwiki.jp/atwikimyj/pages/110.html [pgSQL]新旧pgSQLが混在してしまった場合の対処法 http //www32.atwiki.jp/atwikimyj/pages/111.html [pgSQL] [tips]起動中のpgSQLのバージョン確認 http //www32.atwiki.jp/atwikimyj/pages/112.html [pgSQL][pgAdmin] インストールから基本設定まで http //www32.atwiki.jp/atwikimyj/pages/113.html [pgSQL]pgSQLのユーザの追加・変更・削除 http //www32.atwiki.jp/atwikimyj/pages/115.html [pgSQL] リモートからの接続 http //www32.atwiki.jp/atwikimyj/pages/116.html
https://w.atwiki.jp/atwikimyj/pages/111.html
OSセットアップ時にpgSQLがセットアップされていることを知らずに、新しいバー ジョンのpgSQLをインストールし、新旧のpgSQLを混在させたまま使用、大混乱、 という状況に陥りましたのでこれを修正します。 OSセットアップ時にすでにインストールされているpgSQLはyumコマンドを利用して アンインストールできますが、make installでインストールされたpgSQLはおそらく インストールしたときに使用したソースファイルのあるフォルダに移り # gmake uninstall を行います。 以下、前者の場合のやり方の説明をします。 古いpgSQLがインストールされていないか確認 rpmでインストールされているpgSQLがあればrpmコマンドで確認、さらにアンイン ストールが可能です。 # rpm -qa | grep postgresql postgresql-8.1.11-1.el5_1.1 ・・・ 出るわ出るわ古いバージョン。こいつがserviceとして動いていたのか。削除する。 #rpm -qa | grep postgresql | xargs rpm -e エラー 依存性の欠如 libpq.so.4 は (インストール済み)apr-util-1.2.7-6.i386 に必要とされていま こういうメッセージが出た場合はyumを使うと依存するパッケージも削除してくれます。 # yum remove postgresql 結構待ち時間があったけど、アンインストールは完了。 この後再度 # rpm -qa | grep postgresql を実行すると postgresql-libs-8.1.9-1.el5 postgresql-tcl-8.1.11-1.el5_1.1 が残っていた。さらにpostgresのユーザも消えていてログインできない、、。 ユーザまで消すのだろうか、、。その後またログイン可能に。何なんだ。 アンインストールが終了したので、bashrcを書き換える。 その記述内に後でインストールしたpgSQL8.3.1のバイナリファイルがある場所を 指定する。これでinidbやpg_ctlで起動するのはpgSQL8.3.1となる。
https://w.atwiki.jp/atwikimyj/pages/110.html
各種設定を変更する上で 設定ファイルの書き換え⇒pgSQLの再起動 という操作を頻繁に行う必要があるが、その操作は割りと面倒。 pgSQLのSUにログイン⇒ pg_ctl -D /usr/local/pgsql/data start(or stop,restart) などとやる必要がある。これらの操作をちょっと楽にしたい。 ということでいろいろやる初期設定値を変更する。 bashの設定値は各ユーザのルートにある.bashrcをいじる (Cシェルの場合は.cshrcをいじる) (suコマンドでpostgresのユーザに変更) $vi ~postgres/.bashrc 以下の記述を追加(パスにpgSQL追加、ライブラリに追加、変数でパスを追加) export PATH=/usr/local/pgsql/bin $PATH export LD_LIBRARY_PATH=/usr/local/pgsql/lib $LD_LIBRARY_PATH export PGDATA=/usr/local/pgsql/data 変更後、sourceコマンドを使ってbashの初期値を読み込む(sourceコマンドはシェルの初期値を再読み込みするコマンド) $ source ~postgres/.bashrc これで、いちいちデータベースクラスタのpathを入力しなくても $ pg_ctl -D $PGDATA restart のように変数$PGDATAで代用できるようになる。 $ pg_ctl -D $PGDATA -m immediate
https://w.atwiki.jp/atwikimyj/pages/115.html
pg_SQLでのユーザのまとめ Linuxのユーザとは別です。 デフォルトではpostgresというユーザがいます。 postgresはスーパーユーザで、DB作成、ユーザ作成の権限を持ちます。 ユーザは追加、削除、属性の変更が可能です。 ユーザはひとつのpgSQLシステム内では共通で使用できます (つまりDBごとに設定するわけではないということ) ユーザのリストはpg_userというテーブルに格納されています。 pg_userの内容を変更することでユーザの設定も変更できます。 createuser,dropuserなどのpgSQLのコマンドでも作成削除は可能 ユーザの確認 postgresでログインして、 $ psql ユーザの新規作成 $ createuser -P $ enter password $ again CREATE ROLEと表示されて作成は完了する。 上記の2行目以降はうる覚え。 パスワードを変更 ここではデータベースはpostgresとする。 これはコマンドではなくSQL文で直接データを変更する $ psql postgres $ Password (パスワード入力) welcome to psql,....(略) postgres=# SQL入力待ちになったら、 postgres=# alter user user_name with password ********
https://w.atwiki.jp/m_shige1979/pages/316.html
ユーザー作成 useradd -d /home/postgres -m postgres passwd postgres 所有者権限を変更 chown postgres postgres -R /usr/local/pgsql 環境設定 su - postgres vi ~/.bash_profile ##################################################### export PATH= $PATH /usr/local/pgsql/bin export POSTGRES_HOME=/usr/local/pgsql export PGLIB=$POSTGRES_HOME/lib export PGDATA=$POSTGRES_HOME/data export MANPATH= $MANPATH $POSTGRES_HOME/man export LD_LIBRARY_PATH= $LD_LIBRARY_PATH $PGLIB ##################################################### source ~/.bash_profile
https://w.atwiki.jp/atwikimyj/pages/109.html
postgresql8.3.1 インストール postgreSQLを使用するためのアカウントpostgresを作成しておく。 CentOS5.1標準パッケージでは8.1.11で古い。 yumからアップグレードしようかと思ったが、依存関係がクリアにならず断念。 ということでソースからとってきてインストールすることに。 postgresql.orgからダウンロード http //wwwmaster.postgresql.org/download/mirrors-ftp?file=%2Fsource%2Fv8.3.1%2Fpostgresql-8.3.1.tar.gz libxmlのインストール。 (libxmlとはpostgresqlでxmlファイルを扱える(パースしてくれる?)モジュール) # wget ftp //gd.tuwien.ac.at 21/pub/libxml/libxml2-2.6.31.tar.gz # tar xvzf libxml2-2.6.31.tar.gz # cd libxml2-2.6.31 # ./configure --prefix=/usr/local # make # make install postgresql 8.3.1のソースをダウンロード、インストール # wget http //ftp2.jp.postgresql.org/pub/postgresql//source/v8.3.1/postgresql-8.3.1.tar.gz # tar xvzf postgresql-8.3.1.tar.gz # cd postgresql-8.3.1 # ./configure --with-libxml このままやると readlineというモジュールがないと言われる。なのではずす # ./configure --with-libxml --without-readline # gmake # gmake install 本番環境でも同様にpostgres8.3.1をインストール。 使用するデータベースを作成する。 以前のf4を参考にする。 というかもうない、、。 DBのユーザ:postgres psw:同じ データベースクラスタ(データの保存場所)の作成: 最初はpostgresのアプリケーションは自分の データを保存する場所をしらないので教えてやる必要 がある。 ※下記のフォルダがない場合は作成する必要がある。 # mkdir /usr/local/pgsql/data # chown postgres /usr/local/pgsql/data # su -- postgres postgres$ initdb -D /usr/local/pgsql/data pgSQL8.3.1をサービス化して、OS起動時に同時起動するようにする。 pgSQLのソースにそのためのスクリプトがあるのでそれを必要な設定ファイルに コピーします。 /usr/local/src/postgresql-8.3.1/contrib/start-scripts の下のlinuxというファイルを使用する。このファイルの中身の ## EDIT FROM HEREから ## STOP EDITING HEREまでの間の内容を適宜変えて から、下記のように/etc/init.d/コピーする。 # cd /usr/local/src/postgresql-8.3.1/contrib/start-scripts # cp linux /etc/init.d/postgresql 実行可能なパーミッションに変更 # chmod 755 /etc/init.d/postgresql そして、OS起動時に同時にpgSQLが起動するように # chkconfig --add postgresql これで完了。 サービスに登録 # chkconfig --add postgresql サービス開始 # service postgresql start
https://w.atwiki.jp/parepan/pages/36.html
DBIをインストールします. インストールの順番は,DBIを先に行い,次に,DBD Pg をインストールします. DBD Pgでインストレーションのテストを行うときに,DBIが必要となるためです. 1.DBIのインストール # su - 一般ユーザ $ cd /usr/loca/src/ $ tar xvfz DBI-1.601.tar.gz $ cd /usr/local/src/DB-1.601 $ perl Makefile.PL $ make $ make test $ su - root Password # cd /usr/local/src/DB-1.601 # make install 2.DBD Pgのインストール # su - # cd /usr/loca/src/ # tar xvfz DBD-Pg-1.49.tar.gz # cd /usr/local/src/DBD-Pg-1.49 # perl Makefile.PL # make # su - postgres $ pg_ctl start←Postgresを起動していない場合のみ入力 $ export PGUSER=postgres # cd /usr/local/src/DBD-Pg-1.49 $ make test $ su - root Password # cd /usr/local/src/DBD-Pg-1.49 # make install 3.pgsqlインストール vi .bash_profile 設定追加 ------------------------------------ POSTGRES_INCLUDE=/usr/lib/pgsql/include POSTGRES_LIB=/usr/lib/pgsql/lib export POSTGRES_INCLUDE export POSTGRES_LIB 設定反映 source ~root/.bash_profile 解凍 インストール tar xvfz pgsql_perl5-xxxxxxxx perl Makefile.PL make make test make install