6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

DelphiAdvent Calendar 2018

Day 9

FireDAC接続用PostgreSQLをオンプレで環境構築(CentOS7)したときの失敗談

Last updated at Posted at 2018-12-08

Linux / PostgreSQLを、よく理解されている方には、あたりまえのことかもしれませんが、オンプレの環境構築でのインストール設定時に、自分がハマったことを、書かさせていただきます。

内容は、インストール方法は他にも多数ありますが、CentOS7 GnomeDeskTopで、 EDBのGUI と yum の2つのインストールのパスワードの設定の違いについてです。


Delphi / FireDACでの開発中、手元のオンプレ機器に、yumでインストールしたとき(自分では、いろいろ見ながら正しく設定できているはずと思いながら)接続しようとして、下記のようなエラーでつながらなかった。(EDB版GUIでは、でなかった)
0001.png
[FireDAC][Phys][PG][libpq] could not connect to server: Connection timed out (0x0000274C/10060)
Is the server running on host "192.168.24.63" and accepting
TCP/IP connections on port 5432?
pg_err2.png
[FireDAC][Phys][PG][libpq] password authentication failed for user "postgres"


対処確認などとしては、サーバーの
pghba.conf の確認(外部接続の許可が適切にされているか)
IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all 192.168.24.0/24 md5
postgres.conf の確認
listen_addresses='*'(リッスンアドレス/ポート番号は間違っていないか)
post=5432

その他、ファイアウォールなども確認し、どうも正しく設定されているはずだが、上記エラーが出る(pgAdminなどでの接続も同様のエラーが出ます)
###これは、インストール時に(パスワードを設定したつもりだが、未設定のまま) いとうことでした。

ここでの 「パスワード」 は、CentOS7 / PostgreSQLサーバーに、Windows クライアントのFireDACから、接続するときの、データベースへ接続するためのパスワードです。


###CentOS7で、 GUI で、インストールの場合は、特に問題はありませんでした。
EDB版のGUIでインストールする場合は、パスワードの設定は、ここ
passwd2.png
で行い、ここで指定した、パスワードが、データベースへのログインのパスワードなので、ハマりどころは、ありません。


CentOS7で、 yum で、インストールの場合は

ハマりどころとして
「postgresユーザでログインできるように、passwdコマンドを使ってpostgresユーザのパスワードを設定します。」といった内容をデーターベースにログインするパスワードと勘違いしてしまっていたことです。
###passwd postgtes や、sudo passwd postgtes
passwd.png
といった、投稿記事などを断片的に、見てしまった場合
postgresユーザでデータベースにログインできるように、passwdコマンドを使ってパスワードを設定する、
といった記事みると、データベースにログインするパスワードと勘違いしてしまっていた(私だけかもしれませんが)


###yumインストール時のパスワード設定での注意点は、
###passwd postgtes はOSのユーザーのパスワードで、データベースのログイン用パスワードでは、ありません。


###yumでインストールした場合のデータベースへのログインパスワードの設定は、
psqlから
postgres=# alter role ユーザー名 with password 'パスワード';

(画面はこんな感じになります)
alter2.png
例)  alter role postgres with password 'Passwd123';
の手順が必要です。


この2つのインストール方法で、インストールされるパスも、異なりますので、confファイルの位置も異なります。
代表的なパスは
EDB は、/opt/PostgreSQL/バージョン番号/data/.conf
yum は、/var/lib/pgsql/data/
.conf
などです。


PostgreSQLのインストール方法は、Delphiをご使用の方になじみ深い(FirebirdやInterbase)くらべると、Web上の記事が非常に多い(多すぎるくらい)。
ただ、ググってみて、ご自分で使用されるメモ書き的なのも多くヒットし、FireDACでのクラサバ用の接続では、PostgreSQL初心者が、希望する環境構築と該当しない場合もあります。
既に、長期間、使用している、他のデータベースがあれば、なおさら、用語の違いなどを、間違って解釈してしまったりすることに、気をつれねばと、思った次第です。

なにかと、奥深い、PostgreSQLですが、ライセンス、Web上の情報量の多さや、他のシステムなどの連携といったところでは、今後の優位性があると感じています。

Delphi/FireDACで、PostgreSQLの新規ご利用者のなにかしらの、アドバイスになっていれば幸いでございます。


またここに、「PostgreSQLのロール」について、詳しく記載されています。
より詳しく、知りたい方は、ご一読を、お薦めします。
https://qiita.com/nuko_yokohama/items/085b75ee4c0938936ab9


追記
GUIでのインストール時
Windowsは、ロケール C の選択でも、問題で憎いと思いますが
CentOS7の場合は、ロケール C を選択するとも、エンコーディングが、SQLAsciiになるので、注意が必要です。
sqlascii.png

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?