phpPgAdmin

Posted by muchag | PostgreSQL |
初回投稿:2019-11-23 (土) 21:43:05 | 最終更新:2019-11-24 (日) 12:00:36

【環境】
phpPgAdmin: 5.6
PostgreSQL: 12.1
配置
DL

SourceForge:phpPgAdmin ダウンロードページ より、DL。
2019-11-23 現在
phppgadmin-REL_5-6-0.zip

配置

解凍して出てきた

phppgadmin-REL_5-6-0

を ppa とリネームして、CakePHP4 の webroot ディレクトリ直下へ配置。

.gitignore
.gitignore

/webroot/ppa/*
設定
設定ファイルリネーム
/webroot/ppa/conf/config.inc.php-dist

/webroot/ppa/conf/config.inc.php

とリネーム。

設定
ホスト名

- $conf['servers'][0]['host'] = '';
+ $conf['servers'][0]['host'] = 'localhost';
  $conf['servers'][0]['host'] = '192.168.xxx.xxx'; <- IP 直打ちも可
DB 名

- $conf['servers'][0]['defaultdb'] = 'template1';
+ $conf['servers'][0]['defaultdb'] = 'hoge';
言語

- $conf['default_lang'] = 'auto';
+ $conf['default_lang'] = 'japanese';
スーパーユーザログイン

phpPgAdmin では、pgsql, postgres, root, administrator というユーザ名でのログインは
制限されているとのこと。

今回はローカル環境でのテストインストールなので
これを解除してみる。


- $conf['extra_login_security'] = true;
+ $conf['extra_login_security'] = false;
参考サイト

Qiita:ローカル環境PostgreSQL + phpPgAdmin でデフォルトユーザーでログインできないときの対処(2016-12-24)

テーマ
選択肢

ppa トップページでテーマを選択することができる。
とりあえず

  • Default
  • Cappuccino
  • Blue/Green
  • Bootstrap3

の4種から選べる。

ディレクトリ

これらが

/webroot/ppa/themes

こちらにある

  • bootstrap(Bootstrap3)
  • cappuccino(Cappuccino)
  • default(Default)
  • gotar(Blue/Green)

に対応している。

今回は、Cappuccino にしてみた。

カスタマイズ

.topbar, .trail {
	color: #fff;
	background-color: #363330;
	margin: 0;
	padding: 0;
	text-align: left;
}

Chrome で見ているけど、キャッシュがきつく、
スーパーリロードも効かない。
一晩寝かせたら、やっと反映された。

ドライバ
エラー

設定を終えて、ppa へアクセスしてみたら、下記エラーが出た。

データベースをサポートするように PHP のコンパイル・インストールがされていません。
configure の --with-pgsql オプションを用いて PHP を再コンパイルする必要があります。
インストール

PHP の PostgreSQL ドライバを追加インストール。


yum install -y --enablerepo=remi --enablerepo=remi-php74 php-pgsql

__snip__

インストール:
  php-pgsql.x86_64 0:7.4.0~RC6-15.el7.remi

完了しました!
Apache 再起動

Apache を再起動して、無事 phpPgAdmin が表示された。


systemctl restart httpd
ログイン

現状は、パスワードなしのログイン方法しかわかっていない。

それでも、事前 設定 が必要。

試行錯誤
ドライバ
依存性
依存解決エラー?

PostgreSQL のドライバをインストールしようとしたら
こんな感じになった。


yum install -y php-pgsql

__snip__

updates                                                  | 2.9 kB     00:00
(1/3): epel/x86_64/updateinfo                              | 1.0 MB   00:01
(2/3): remi-safe/primary_db                                | 1.6 MB   00:04
(3/3): epel/x86_64/primary_db                              | 6.9 MB   00:11
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ php-pgsql.x86_64 0:5.4.16-46.1.el7_7 を インストール
--> 依存性の処理をしています: php-pdo(x86-64) = 5.4.16-46.1.el7_7 のパッケージ: php-pgsql-5.4.16-46.1.el7_7.x86_64
--> 依存性解決を終了しました。
エラー: パッケージ: php-pgsql-5.4.16-46.1.el7_7.x86_64 (updates)
             要求: php-pdo(x86-64) = 5.4.16-46.1.el7_7
            インストール: php-pdo-7.4.0~RC6-15.el7.remi.x86_64 (@remi-php74)
                php-pdo(x86-64) = 7.4.0~RC6-15.el7.remi
            利用可能: php-pdo-5.4.16-46.el7.x86_64 (base)
                php-pdo(x86-64) = 5.4.16-46.el7
            利用可能: php-pdo-5.4.16-46.1.el7_7.x86_64 (updates)
                php-pdo(x86-64) = 5.4.16-46.1.el7_7
 問題を回避するために --skip-broken を用いることができます。
 これらを試行できます: rpm -Va --nofiles --nodigest
解決

そこで、php アップデート のときのコマンドを参考に
前述のようにしたら、無事にドライバをインストールできた。

ログイン

ユーザ名を、postgres。
パスワードは、なし、ALTER ROLE で再設定後の両方を試したけど
ログインできない。

対応

ドキュメント を見てみたら
Support for PostgreSQL 8.4.x, 9.x, 10.x, 11.x
あ、れ?
もしかして、12.1 だから?
多分そういう問題ではないよね。。。

一部解決

設定 をしたら、パスワードなしならログインできるようになった。

Posted by muchag | PostgreSQL |
初回投稿:2019-11-23 (土) 21:43:05 | 最終更新:2019-11-24 (日) 12:00:36

操作

Posted by muchag | PostgreSQL |
初回投稿:2019-11-17 (日) 21:30:18 | 最終更新:2019-11-24 (日) 16:38:25

【環境】
PostgreSQL: 12.1
CentOS: 7.5.1804
ユーザ切り替え

su - postgres
最終ログイン: 2019/11/17 (日) 19:40:30 JST日時 pts/0

全てはここから。

ログイン
ログイン

psql
psql (12.1)
"help"でヘルプを表示します。

で、下記のような、SQL 文入力待機状態になる。



ログアウト

\q

exit も有効。

確認
バージョン
ログイン前

psql --version
psql (PostgreSQL) 12.1
ログイン後

SELECT version();
                                                 version
---------------------------------------------------------------------------------------------------------
 PostgreSQL 12.1 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39), 64-bit
ユーザ一覧

\du
                                             ロール一覧
 ロール名 |                                   属性                                   | 所属グループ
----------+--------------------------------------------------------------------------+--------------
 postgres | スーパユーザ, ロール作成可, DB作成可, レプリケーション可, RLS のバイパス | {}
データベース一覧
ログイン前

ppsql -l
                                        データベース一覧
   名前    |  所有者  | エンコーディング | 照合順序 | Ctype(変換演算子) |     アクセス権限
-----------+----------+------------------+----------+-------------------+-----------------------
 postgres  | postgres | UTF8             | C        | C                 |
 template0 | postgres | UTF8             | C        | C                 | =c/postgres          +
           |          |                  |          |                   | postgres=CTc/postgres
 template1 | postgres | UTF8             | C        | C                 | =c/postgres          +
           |          |                  |          |                   | postgres=CTc/postgres
ログイン後

\l
                                        データベース一覧
   名前    |  所有者  | エンコーディング | 照合順序 | Ctype(変換演算子) |     アクセス権限
-----------+----------+------------------+----------+-------------------+-----------------------
 postgres  | postgres | UTF8             | C        | C                 |
 template0 | postgres | UTF8             | C        | C                 | =c/postgres          +
           |          |                  |          |                   | postgres=CTc/postgres
 template1 | postgres | UTF8             | C        | C                 | =c/postgres          +
           |          |                  |          |                   | postgres=CTc/postgres
設定

SHOW all;
SHOW [設定名];
ヘルプ
ログイン前

psql --help
ログイン後
コマンドヘルプ

\?
SQL ヘルプ

\h
利用可能なヘルプ:
  ABORT                            ALTER PROCEDURE                  ALTER VIEW                       CREATE FOREIGN TABLE             CREATE TABLESPACE                DROP DATABASE                    DROP SCHEMA                      GRANT                            SELECT
  ALTER AGGREGATE                  ALTER PUBLICATION                ANALYZE                          CREATE FUNCTION                  CREATE TEXT SEARCH CONFIGURATION DROP DOMAIN                      DROP SEQUENCE                    IMPORT FOREIGN SCHEMA            SELECT INTO
  ALTER COLLATION                  ALTER ROLE                       BEGIN                            CREATE GROUP                     CREATE TEXT SEARCH DICTIONARY    DROP EVENT TRIGGER               DROP SERVER                      INSERT                           SET
  ALTER CONVERSION                 ALTER ROUTINE                    CALL                             CREATE INDEX                     CREATE TEXT SEARCH PARSER        DROP EXTENSION                   DROP STATISTICS                  LISTEN                           SET CONSTRAINTS
  ALTER DATABASE                   ALTER RULE                       CHECKPOINT                       CREATE LANGUAGE                  CREATE TEXT SEARCH TEMPLATE      DROP FOREIGN DATA WRAPPER        DROP SUBSCRIPTION                LOAD                             SET ROLE
  ALTER DEFAULT PRIVILEGES         ALTER SCHEMA                     CLOSE                            CREATE MATERIALIZED VIEW         CREATE TRANSFORM                 DROP FOREIGN TABLE               DROP TABLE                       LOCK                             SET SESSION AUTHORIZATION
  ALTER DOMAIN                     ALTER SEQUENCE                   CLUSTER                          CREATE OPERATOR                  CREATE TRIGGER                   DROP FUNCTION                    DROP TABLESPACE                  MOVE                             SET TRANSACTION
  ALTER EVENT TRIGGER              ALTER SERVER                     COMMENT                          CREATE OPERATOR CLASS            CREATE TYPE                      DROP GROUP                       DROP TEXT SEARCH CONFIGURATION   NOTIFY                           SHOW
  ALTER EXTENSION                  ALTER STATISTICS                 COMMIT                           CREATE OPERATOR FAMILY           CREATE USER                      DROP INDEX                       DROP TEXT SEARCH DICTIONARY      PREPARE                          START TRANSACTION
  ALTER FOREIGN DATA WRAPPER       ALTER SUBSCRIPTION               COMMIT PREPARED                  CREATE POLICY                    CREATE USER MAPPING              DROP LANGUAGE                    DROP TEXT SEARCH PARSER          PREPARE TRANSACTION              TABLE
  ALTER FOREIGN TABLE              ALTER SYSTEM                     COPY                             CREATE PROCEDURE                 CREATE VIEW                      DROP MATERIALIZED VIEW           DROP TEXT SEARCH TEMPLATE        REASSIGN OWNED                   TRUNCATE
  ALTER FUNCTION                   ALTER TABLE                      CREATE ACCESS METHOD             CREATE PUBLICATION               DEALLOCATE                       DROP OPERATOR                    DROP TRANSFORM                   REFRESH MATERIALIZED VIEW        UNLISTEN
  ALTER GROUP                      ALTER TABLESPACE                 CREATE AGGREGATE                 CREATE ROLE                      DECLARE                          DROP OPERATOR CLASS              DROP TRIGGER                     REINDEX                          UPDATE
  ALTER INDEX                      ALTER TEXT SEARCH CONFIGURATION  CREATE CAST                      CREATE RULE                      DELETE                           DROP OPERATOR FAMILY             DROP TYPE                        RELEASE SAVEPOINT                VACUUM
  ALTER LANGUAGE                   ALTER TEXT SEARCH DICTIONARY     CREATE COLLATION                 CREATE SCHEMA                    DISCARD                          DROP OWNED                       DROP USER                        RESET                            VALUES
  ALTER LARGE OBJECT               ALTER TEXT SEARCH PARSER         CREATE CONVERSION                CREATE SEQUENCE                  DO                               DROP POLICY                      DROP USER MAPPING                REVOKE                           WITH
  ALTER MATERIALIZED VIEW          ALTER TEXT SEARCH TEMPLATE       CREATE DATABASE                  CREATE SERVER                    DROP ACCESS METHOD               DROP PROCEDURE                   DROP VIEW                        ROLLBACK
  ALTER OPERATOR                   ALTER TRIGGER                    CREATE DOMAIN                    CREATE STATISTICS                DROP AGGREGATE                   DROP PUBLICATION                 END                              ROLLBACK PREPARED
  ALTER OPERATOR CLASS             ALTER TYPE                       CREATE EVENT TRIGGER             CREATE SUBSCRIPTION              DROP CAST                        DROP ROLE                        EXECUTE                          ROLLBACK TO SAVEPOINT
  ALTER OPERATOR FAMILY            ALTER USER                       CREATE EXTENSION                 CREATE TABLE                     DROP COLLATION                   DROP ROUTINE                     EXPLAIN                          SAVEPOINT
  ALTER POLICY                     ALTER USER MAPPING               CREATE FOREIGN DATA WRAPPER      CREATE TABLE AS                  DROP CONVERSION                  DROP RULE                        FETCH                            SECURITY LABEL

\h [SQL コマンド名] <- 詳細を見る
テストテーブル
DB

CREATE DATABASE test;
CREATE DATABASE
確認

\l
                                        データベース一覧
   名前    |  所有者  | エンコーディング | 照合順序 | Ctype(変換演算子) |     アクセス権限
-----------+----------+------------------+----------+-------------------+-----------------------
 postgres  | postgres | UTF8             | C        | C                 |
 template0 | postgres | UTF8             | C        | C                 | =c/postgres          +
           |          |                  |          |                   | postgres=CTc/postgres
 template1 | postgres | UTF8             | C        | C                 | =c/postgres          +
           |          |                  |          |                   | postgres=CTc/postgres
 test      | postgres | UTF8             | C        | C                 |
(4 行)

template0, template1 は、データベースを作成する際のテンプレート。

データベース名( name )を指定して新しいデータベースを作成します。
明示的に指定しない場合は、作成済みのテンプレートデータベース template1 をコピーしてデータベースが作成されます。

中略

ロケール設定( LC_COLLATE と LC_CTYPE )がデフォルトで使用されるテンプレートの template1 のロケール設定と異なる場合、
明示的にテンプレートとして template0 を使用する必要があります。

DBOnline:データベースを作成する(CREATE DATABASE)

テーブル

CREATE TABLE test_table (id integer, name varchar(10));
CREATE TABLE
確認

\dt
              リレーション一覧
 スキーマ |    名前    |    型    |  所有者
----------+------------+----------+----------
 public   | test_table | テーブル | postgres
(1 行)
試行錯誤
ログイン

真面目に書くと、ログインできない。。。


psql -h localhost -p 5432 -U postgres
psql: エラー: サーバに接続できませんでした: FATAL:  Ident authentication failed for user "postgres"
Posted by muchag | PostgreSQL |
初回投稿:2019-11-17 (日) 21:30:18 | 最終更新:2019-11-24 (日) 16:38:25

インストール -> 12.1

Posted by muchag | PostgreSQL |
初回投稿:2019-11-17 (日) 20:52:44 | 最終更新:2019-11-24 (日) 12:20:16

【環境】
PostgreSQL: 12.1
CentOS: 7.5.1804
方法
  • ソースコードビルド
  • CLI
    • CentOS 標準の Yum リポジトリ
    • PostgreSQL 開発元の Yum リポジトリ
  • GUI

と色々な方法があるみたいだけど
今回は参考サイトに倣って
PostgreSQL 開発元の Yum リポジトリからインストールすることにした。

旧バージョン
確認

yum list installed | grep postgresql
アンインストール

# サービス停止
systemctl stop postgresql-11.service

# 確認
ps aux | grep postgres

# アンインストール
yum remove postgresql*
リポジトリ

公式:Accessing to the PostgreSQL RPM Repositories
こちらの「CentOS 7 – x86_64」のリンクアドレスをコピーする。
https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

これを引数として、リポジトリパッケージをインストール。


yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

__snip__

インストール:
  pgdg-redhat-repo.noarch 0:42.0-5

完了しました!
確認

yum info postgresql12-server
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp-srv2.kddilabs.jp
 * epel: www.ftp.ne.jp
 * extras: ftp-srv2.kddilabs.jp
 * remi-safe: ftp.riken.jp
 * updates: ftp-srv2.kddilabs.jp
利用可能なパッケージ
名前                : postgresql12-server
アーキテクチャー    : x86_64
バージョン          : 12.1
リリース            : 1PGDG.rhel7
容量                : 4.9 M
リポジトリー        : pgdg12/7/x86_64
要約                : The programs needed to create and run a PostgreSQL server
URL                 : https://www.postgresql.org/
ライセンス          : PostgreSQL
説明                : PostgreSQL is an advanced Object-Relational database management system (DBMS).
                    : The postgresql12-server package contains the programs needed to create
                    : and run a PostgreSQL server, which will in turn allow you to create
                    : and maintain PostgreSQL databases.
インストール

yum install -y postgresql12-server

__snip__

インストール:
  postgresql12-server.x86_64 0:12.1-1PGDG.rhel7

依存性関連をインストールしました:
  postgresql12.x86_64 0:12.1-1PGDG.rhel7 # これが client らしい
  postgresql12-libs.x86_64 0:12.1-1PGDG.rhel7

完了しました!

ん~、参考サイトでは、python3 が依存性関連としてインストールされていたけど
私の場合は出てないなぁ。

確認
インストールディレクトリ

ll /usr/pgsql-12/
合計 12
drwxr-xr-x 2 root root 4096 11月 17 18:36 bin
drwxr-xr-x 3 root root 4096 11月 17 18:36 lib
drwxr-xr-x 7 root root 4096 11月 17 18:36 share
バージョン

psql --version
psql (PostgreSQL) 12.1
ユーザ
postgres ユーザ

PostgreSQL の postgres ユーザは、実は2人いる。

一人目は、インストール時に自動で作成される、OS のユーザ。
二人目は、PostgreSQL のスーパーユーザ。

OS ユーザ

su - postgres
最終ログイン: 2019/11/17 (日) 19:40:30 JST日時 pts/0

これが、OS ユーザ。


id postgres
uid=26(postgres) gid=26(postgres) groups=26(postgres)

tail /etc/passwd
__snip__
postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash

そして、

PostgreSQLをインストールした時点で、
自動的にデータベースの管理ユーザーであるpostgresユーザーが作成されます。
ただ、このユーザーのパスワードは未設定の状態であるため、アカウントロック状態となっており、
このままではrootユーザーからsuコマンドでスイッチする方法以外でのログインができません。

PostgreSQL で始める DB 入門:ユーザーとパスワードの設定

とのこと。

パスワード再設定

なので、OS の postgres ユーザでログインする必要がある場合は、
下記コマンドにて、パスワードを再設定する必要がある。


passwd postgres
ユーザー postgres のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
PostgreSQL スーパーユーザ

\du
                                             ロール一覧
 ロール名 |                                   属性                                   | 所属グループ
----------+--------------------------------------------------------------------------+--------------
 postgres | スーパユーザ, ロール作成可, DB作成可, レプリケーション可, RLS のバイパス | {}

これが、PostgreSQL スーパーユーザ。

初期パスワード

そして、下記の SQL にて、progres ユーザの情報を見ると、
設定した覚えのないパスワードが。。。


SELECT * FROM pg_user;
 usename  | usesysid | usecreatedb | usesuper | userepl | usebypassrls |  passwd  | valuntil | useconfig
----------+----------+-------------+----------+---------+--------------+----------+----------+-----------
 postgres |       10 | t           | t        | t       | t            | ******** |          |
パスワード再設定

なので、パスワードを再設定する。


ALTER ROLE postgres WITH PASSWORD 'password';
ALTER ROLE
postgres データベース

さらに、名前が postgres のデータベースまで存在するので、非常にややこしい。


\l
                                        データベース一覧
   名前    |  所有者  | エンコーディング | 照合順序 | Ctype(変換演算子) |     アクセス権限
-----------+----------+------------------+----------+-------------------+-----------------------
 postgres  | postgres | UTF8             | C        | C                 |
 template0 | postgres | UTF8             | C        | C                 | =c/postgres          +
           |          |                  |          |                   | postgres=CTc/postgres
 template1 | postgres | UTF8             | C        | C                 | =c/postgres          +
           |          |                  |          |                   | postgres=CTc/postgres
参考サイト

PostgreSQL で始める DB 入門:ユーザーとパスワードの設定

設定

ローカル環境は、Windows10 で動かしている VirtualBox 内の CentOS へインストールしたので
外部からアクセスできるように設定する必要がある。


vim /var/lib/pgsql/12/data/postgresql.conf

- #listen_addresses = 'localhost'          # what IP address(es) to listen on;
+ listen_addresses = '*'          # what IP address(es) to listen on;

vim /var/lib/pgsql/12/data/pg_hba.conf

- host    all             all             127.0.0.1/32            ident
+ host    all             all             all                     trust

Method trust は、パスワード無しで認証される。

これでようやく phpPgAdmin からログインできたけど
Method を ident にすると、パスワードを入力しても、ログインできない。

難しい。 🙄

また、今回は必要なかったけど
場合によっては、VirtualBox 側の設定も必要になるかも。

参考サイト

Qiita:【初心者向け】サーバに構築したPostgreSQLをWindowsからツールで使えるようになるまでを一から説明します。(2018-12-03)
→他の記事で、pg_hba.conf に IP アドレスを指定する方法が載っていたけど、それではだめだった。こちらで all を設定できることを知り、なんとか解決

The Life:ホストOSから VIRTUALBOX の中の POSTGRESQL にアクセスする方法(2018-01-01)
→VirtualBox のポートフォワーディング設定についての記事あり

データベースクラスタ

データベースクラスタという文言は、PostgreSQL 独自のものだそうな。
impress:データベース・クラスタの概要(2010-10-05)
に拠れば

  • 高可用性(Transactional)
  • 並列処理(Analytic)
  • 性能向上(Online)

これらを担保するためのシステムとのこと。

作成

PGSETUP_INITDB_OPTIONS="-E UTF8 --locale=C" /usr/pgsql-12/bin/postgresql-12-setup initdb
Initializing database ... OK
文字コード

最近は、寿司ビール問題から、MySQL では、utf8mb4 とするようにしているけど
PostgreSQL では、UTF8 で問題ないらしい。

ロケール

–locale=C
は、「ロケールなし」。
–no-locale
と同義とのこと。

ロケールは言語や国によって異なる文字の扱いや並び替え順を指定するものです。
日本語ではロケールを使う必要があまりなく、ロケールを使うと文字の処理が遅くなり、
LIKE で通常のインデックスも使えなくなるので、ロケールを使わないようにします。

Qiita:PostgreSQL を CentOS にインストールするには(2019-11-06)

ロケールが決まると、必ずそれに一致するエンコーディングを使わなければならないことを示しています。

$ initdb –encoding=UTF-8 –locale=ja_JP.UTF-8
~~~~~ ~~~~~

Let’s Postgres:ロケール(国際化と地域化)(2009-06-18)

確認

ll /var/lib/pgsql/12/data
合計 52
-rw------- 1 postgres postgres     3 11月 17 19:08 PG_VERSION
drwx------ 5 postgres postgres    41 11月 17 19:08 base
drwx------ 2 postgres postgres  4096 11月 17 19:08 global
drwx------ 2 postgres postgres     6 11月 17 19:08 log
drwx------ 2 postgres postgres     6 11月 17 19:08 pg_commit_ts
drwx------ 2 postgres postgres     6 11月 17 19:08 pg_dynshmem
-rw------- 1 postgres postgres  4269 11月 17 19:08 pg_hba.conf
-rw------- 1 postgres postgres  1636 11月 17 19:08 pg_ident.conf
drwx------ 4 postgres postgres    68 11月 17 19:08 pg_logical
drwx------ 4 postgres postgres    36 11月 17 19:08 pg_multixact
drwx------ 2 postgres postgres    18 11月 17 19:08 pg_notify
drwx------ 2 postgres postgres     6 11月 17 19:08 pg_replslot
drwx------ 2 postgres postgres     6 11月 17 19:08 pg_serial
drwx------ 2 postgres postgres     6 11月 17 19:08 pg_snapshots
drwx------ 2 postgres postgres     6 11月 17 19:08 pg_stat
drwx------ 2 postgres postgres     6 11月 17 19:08 pg_stat_tmp
drwx------ 2 postgres postgres    18 11月 17 19:08 pg_subtrans
drwx------ 2 postgres postgres     6 11月 17 19:08 pg_tblspc
drwx------ 2 postgres postgres     6 11月 17 19:08 pg_twophase
drwx------ 3 postgres postgres    60 11月 17 19:08 pg_wal
drwx------ 2 postgres postgres    18 11月 17 19:08 pg_xact
-rw------- 1 postgres postgres    88 11月 17 19:08 postgresql.auto.conf
-rw------- 1 postgres postgres 26586 11月 17 19:08 postgresql.conf
起動

いつも通り。


# 起動
systemctl start postgresql-12.service

# 停止
systemctl stop postgresql-12.service

# 再起動
systemctl restart postgresql-12.service

# 確認
systemctl status postgresql-12.service

# 自動起動
systemctl enable postgresql-12.service
環境変数設定

スーパーユーザ postgres の環境変数設定を行う。

ユーザ切り替え

su - postgres
最終ログイン: 2019/11/17 (日) 19:40:30 JST日時 pts/0

これで、postgres ユーザとして、コマンドを操作する。


vim ~/.pgsql_profile
設定
~/.pgsql_profile

PATH=/usr/pgsql-12/bin:$PATH
MANPATH=/usr/pgsql-12/share/man:$MANPATH
PGDATA=/var/lib/pgsql/12/data
export PATH MANPATH PGDATA
反映

. ~/.bash_profile
接続確認

psql -l
                             List of databases
   Name    |  Owner   | Encoding | Collate | Ctype |   Access privileges
-----------+----------+----------+---------+-------+-----------------------
 postgres  | postgres | UTF8     | C       | C     |
 template0 | postgres | UTF8     | C       | C     | =c/postgres          +
           |          |          |         |       | postgres=CTc/postgres
 template1 | postgres | UTF8     | C       | C     | =c/postgres          +
           |          |          |         |       | postgres=CTc/postgres
(3 rows)

ん~、環境変数設定をする前から、これは見られたけど
どういうことなんだろう。

参考サイト

Qiita:PostgreSQL を CentOS にインストールするには(2019-11-06)

Qiita:CentOS 7.5にPostgreSQL12をインストールする(2019-10-29)

a23note:PostgreSQL12 yum install CentOS7 (2)(2019-10-15)

Saba note:PostgreSQL インストールと初期設定(2019-10-11)
→旧バージョン対応を参考にさせていただいた

試行錯誤
環境変数設定
設定
~/.pgsql_profile

これ、作ったはいいけど、どこにあるの?


ll /home
合計 0

/var/lib/pgsql/
合計 0
drwx------ 4 postgres postgres 51 11月 17 19:08 12

find ./ -name '*pgsql_profile*'
find ./ -name '*pgsql_profile'
find ./ -name '.pgsql_profile'

全て反応なし。

接続確認

データベースクラスタを覗いた際に
下記のような警告が出た。

could not change directory to “/root”: 許可がありません

これは、ユーザ変更をする際に


su postgres

このように -(ハイフン)を付けなかったために起きた。

ハイフンなしだと、不完全な切り替えらしい。

Posted by muchag | PostgreSQL |
初回投稿:2019-11-17 (日) 20:52:44 | 最終更新:2019-11-24 (日) 12:20:16

phpPgAdmin を XAMPP へインストール

Posted by muchag | phpPgAdmin,XAMPP |
初回投稿:2011-07-11 (月) 10:54:49 | 最終更新:2012-01-04 (水) 15:41:40

PostgreSQL は CUI で利用するのが一般的なようだが
初心者な私は、使い慣れた phpMyAdmin の兄弟に声を掛けることにした。

 

【環境】
[XAMPP] 1.7.3
phpPgAdmin
DL

phpPgAdmin にアクセス。
2011-07-10 現在、最新ヴァージョンは 5.0.2 のようだ。

画面上部の「Download」か
ヴァージョンの「5.0.2」をクリック。

 
私は XAMPP for Windows で利用するので
.zip 版を DL 。

phpPgAdmin-5.0.2.zip

 

インストール

解凍して出てくる

phpPgAdmin-5.0.2

を phpPgAdmin とリネームして
xampp 直下に phpMyAdmin と並列に置いてみたが
これはだめだった。

というわけで htdocs 直下に配置。

xampp/htdocs/phpPgAdmin

 

設定
xampp/phpPgAdmin/conf/config.inc.php
  1. $conf['servers'][0]['host'] = '';
  2.  ↓
  3. $conf['servers'][0]['host'] = 'localhost';

 

  1. $conf['servers'][0]['pg_dump_path'] = '/usr/bin/pg_dump';
  2. $conf['servers'][0]['pg_dumpall_path'] = '/usr/bin/pg_dumpall';
  3.  ↓
  4. $conf['servers'][0]['pg_dump_path'] = 'I:\xampp\PostgreSQL\8.4\bin\pg_dump';
  5. $conf['servers'][0]['pg_dumpall_path'] = 'I:\xampp\PostgreSQL\8.4\bin\pg_dumpall';

 

  1. $conf['extra_login_security'] = true;
  2.  ↓
  3. $conf['extra_login_security'] = false;

この88行目に関しては、どこかのサイトで
「何でもありになるから控えるように」とか
書いてあった気がするけど、
これをやらないと大変なことに><

詳細は後ほど・・・。
 

アクセス

http://localhost/phpPgAdmin/
にアクセスすると、左の通り。
やった~!

「サーバー」をクリックすると

 
「PostgreSQL」をクリックすると

 
え?
えっと・・・「ユーザー名」を設定した覚えがないのですが・・・。

まずここで大ハマリした。
(私が嵌って青ざめている様子を思い浮かべてお楽しみください orz)

考えたり SS を見ること数十分。

 
あった・・・。

パスワードを設定したダイアログに
「the database superuser (postgres) and service account (postgres).」
だって・・・。

 
しかーし!!
ユーザー名:postgres
パスワード:決めたもの
でもログインできない。

PostgreSQL に同梱されていた「pgAdmin Ⅲ」では
上記ユーザー名&パスワードでログインできることも確認した。

なぜ~!!

そこで、config.inc.php の88行目の設定が効いてくる。

  1. $conf['extra_login_security'] = false;

これでログインできるようになった。

またもやメッサくだらないことで1時間以上費やしてしまったよん。 😥
 
やっとこさ
PostgresSQL とご対面~♪

 

参考元サイト

GLabo.NET:phpPgAdmin

Posted by muchag | phpPgAdmin,XAMPP |
初回投稿:2011-07-11 (月) 10:54:49 | 最終更新:2012-01-04 (水) 15:41:40

PostgreSQL を XAMPP へインストール

Posted by muchag | PostgreSQL,XAMPP |
初回投稿:2011-07-11 (月) 1:22:40 | 最終更新:2012-01-04 (水) 15:41:04

XAMPPPostgreSQL を使ってみようと思う。

【環境】
[XAMPP] 1.7.3
DL & インストール
DL

EnterpriseDB
[Products, Service & Training]-[Download] をクリック。

 
2011-07-10 現在、9.0 が最新ヴァージョンのようだ。

でも、何となく今回は 8.4 を選択してみる。

 
すると左のような画面になるので
左ペインに必要事項を記入。

Regist するとパスワードがメールで送られてくるので
ログイン・・・したら DL できるのかと思ったら
Access Denied 言われた・・・orz

おかしいなぁ と思っていたら
Cookie の受け入れを忘れていた。

で、Cookie を受け入れたら、今度はログインしなくても
いきなり DL できた。
postgresql-8.4.8-1-windows.exe

ん~、さっきのログイン情報が残っていたのかなぁ。

それとも実は Cookie をオンにしていたら
登録しなくてもよかったのかなぁ・・・不明。
 

インストール

 
インストールディレクトリの指定。

 
データディレクトリの指定。

 
上のデータディレクトリ指定で
その前のインストールディレクトリと被ると
左のようなエラーメッセージが出るみたい。

 
パスワードの設定。

 
利用ポート番号の設定。
まぁ、デフォルトでいいかな。

 
地域の指定。

私は素直に「Japanese, Japan」を選択してしまったが
参考元サイトに 「C」がお勧め と書いてあった。

もうインストールしちゃったよ・・・。

 

 

 

 

 
ツールがいっぱいあるようだけど
始めたばかりの私には、何がなにやらサッパリわからない。

よって
参考元サイトに従って「スタックビルダ」はキャンセルした。

 
参考元サイト:Let’s Postgres WindowsでPostgreSQLを使ってみよう
 

php.ini

php.ini の PostgreSQL 関連の設定を変更。

xampp/php/php.ini
  1. ;extension=php_pgsql.dll
  1. ;extension=php_pdo_pgsql.dll

以上2行のコメントアウトを外す。
(行番号は目安)
 

起動

ふと、PostgreSQL の起動や停止はどうするのかと思った。

XAMPP のコンパネでは、MySQL の起動&停止できるが
PostgreSQL の操作はできない。

とあれこれ見てみたら
なんていうことはない、普通に
[スタート]-[すべてのプログラム]-[PostgreSQL 8.4] で
あれこれできる。

Posted by muchag | PostgreSQL,XAMPP |
初回投稿:2011-07-11 (月) 1:22:40 | 最終更新:2012-01-04 (水) 15:41:04