2016年08月17日

PostgreSQL9.6.0beta4 GUIインストール (DelphiXE8(FireDAC)からの接続エラーのメモ)

PostgreSQL9.6.0beta4のGUIインストール、Windowsでは、知っていたのですが、Linux(CentOS / Ubuntu)でも、同様のセットアップができることを知り、大変便利なので、試していましたが、Windows / Linuxで、ロケール(C)を指定してインストールすると、Linux(CentOS7 64bit / Ubuntu16.04 LTS )で、DelphiXE8(FireDAC)で作成したプログラムで、データ追加時に、エラーがでたので、メモ。

Windows7は、ロケールを[C] [Japanese]の選択ともにOK
win_jp.png
Linuxでは、[C]は、エラー、日本語の選択がWindowsと異なり
cent_jp2.png
ja_JP
ja_JP.eucjp
ja_JP.ujis
ja_JP.utf8
japanese
japanese.euc

6種類の選択となるようで、ja_JP.eucjp / ja_JP.utf8 / japaneseの3種類は、試してみましたが、OK。


ローカル環境にインストールは、
1. 日本 PostgreSQL ユーザ会のサイトから、ダウンロード
i1.png

2. ダウンロードからOSを選択
i2.png
3. Windowsを選ぶと、enterprisedb.comのダウンロードサイトへ、ここで、LinuxのRUNファイルも選択可能です(今までは、Windowsしか、選択したことがなかったです)
i3.png
4.
i4.png

enterprisedb.comさんからのLinuxは、試したことが、なかったのですが、Windowsと同様のGUIでインストールできると、大変便利なので、試しています。

いままでは、
Linuxのインストールは、ネットなどを探して
CentOS7の場合、yumで
2.rpm -ivh pgdg-centos96-9.6-1.noarch.rpm
3.yum -y install postgresql96-server postgresql96-devel postgresql96-contrib
4./usr/pgsql-9.6/bin/postgresql96-setup initdb
5.systemctl start postgresql-9.6
Ubuntu 16.04 LTSの場合、aptで
1.sudo apt-get update
2.sudo apt-get install postgresql postgresql-contrib
3.sudo passwd postgres
4./etc/rc.d/init.d/postgresql start
といった感じで、インストールしていましたが、RUNファイルから、実行すれば、Windowsと同様のGUIで、インストールが可能でした。


インストール時のlocaleがよく、理解できなかったもので、
参考にしながら、、ロケールをCロケールにして、試してみることに、
この記事のステップ6 の注意点で、はまっているようで、普通にGUIインストールを行うと、
記事中の
{
別途、データベース・クラスタの初期化(initdb) や データベースの作成 (createdb)を実施する必要が生じます。
initdb実行例(エンコーディング:UTF-8、ロケール:no-locale(Cロケール))
initdb -E UTF-8 --no-locale -D /home/postgres/pgdata
 }
は、インストーラーに内包されているようで、処理は不要でした。

CentOS7.2.1511 (64bit) RUNファイルからのインストールで、ロケールをCにした場合
c.png

postgres.confは、下記のようになります
(詳細を見たい方は、CentOS7_RUN_C_conf.zip)
#client_encoding = sql_ascii# actually, defaults to database
# encoding

# These settings are initialized by initdb, but they can be changed.
lc_messages = 'C'# locale for system error message
# strings
lc_monetary = 'C'# locale for monetary formatting
lc_numeric = 'C'# locale for number formatting
lc_time = 'C'# locale for time formatting


Windows7 Clientから、pgAdmin3で接続
000.png
2.
001.png

3.
002.png
4.
004.png

-- Database: testdb

-- DROP DATABASE testdb;

CREATE DATABASE testdb
  WITH OWNER = postgres
       ENCODING = 'SQL_ASCII'
       TABLESPACE = pg_default
       LC_COLLATE = 'C'
       LC_CTYPE = 'C'
       CONNECTION LIMIT = -1;


Windows7 Pro (64bit) EXEファイルからのインストールで、ロケールをCにした場合
c.png
postgres.confは、下記のようになります
(詳細を見たい方は、Windows7_EXE_C_conf.zip)
#client_encoding = sql_ascii# actually, defaults to database
# encoding

# These settings are initialized by initdb, but they can be changed.
lc_messages = 'C'# locale for system error message
# strings
lc_monetary = 'C'# locale for monetary formatting
lc_numeric = 'C'# locale for number formatting
lc_time = 'C'# locale for time formatting

Windows7 Clientから、pgAdmin3で接続
1.
001.png
2.
002.png
3.
004.png

-- Database: testdb

-- DROP DATABASE testdb;

CREATE DATABASE testdb
  WITH OWNER = postgres
       ENCODING = 'UTF8'
       TABLESPACE = pg_default
       LC_COLLATE = 'C'
       LC_CTYPE = 'C'
       CONNECTION LIMIT = -1;



posted by a23 at 18:08| Comment(0) | PostgreSQL

2016年08月09日

PostgreSQL の locale

postgresql.conf
--------------------------------------------------------------------------------------------
Windows7        
1.EXE
# These settings are initialized by initdb, but they can be changed.
lc_messages = 'C'# locale for system error message
# strings
lc_monetary = 'C'# locale for monetary formatting
lc_numeric = 'C'# locale for number formatting
lc_time = 'C'# locale for time formatting
--------------------------------------------------------------------------------------------
CentOS7          
2.YUM  
# These settings are initialized by initdb, but they can be changed.
lc_messages = 'ja_JP.UTF-8'# locale for system error message
# strings
lc_monetary = 'ja_JP.UTF-8'# locale for monetary formatting
lc_numeric = 'ja_JP.UTF-8'# locale for number formatting
lc_time = 'ja_JP.UTF-8'# locale for time formatting
--------------------------------------------------------------------------------------------
3.RUN(locale-C)  
# These settings are initialized by initdb, but they can be changed.
lc_messages = 'C'# locale for system error message
# strings
lc_monetary = 'C'# locale for monetary formatting
lc_numeric = 'C'# locale for number formatting
lc_time = 'C'# locale for time formatting
--------------------------------------------------------------------------------------------
4.RUN(locale-ja_JP.utf8 ) 
# These settings are initialized by initdb, but they can be changed.
lc_messages = 'ja_JP.utf8'# locale for system error message
# strings
lc_monetary = 'ja_JP.utf8'# locale for monetary formatting
lc_numeric = 'ja_JP.utf8'# locale for number formatting
lc_time = 'ja_JP.utf8'# locale for time formatting
--------------------------------------------------------------------------------------------
Ubuntu 16.04 LTS
5.APT  
# These settings are initialized by initdb, but they can be changed.
lc_messages = 'ja_JP.UTF-8'# locale for system error message
# strings
lc_monetary = 'ja_JP.UTF-8'# locale for monetary formatting
lc_numeric = 'ja_JP.UTF-8'# locale for number formatting
lc_time = 'ja_JP.UTF-8'# locale for time formatting
--------------------------------------------------------------------------------------------
6.RUN(locale-C) 
# These settings are initialized by initdb, but they can be changed.
lc_messages = 'C'# locale for system error message
# strings
lc_monetary = 'C'# locale for monetary formatting
lc_numeric = 'C'# locale for number formatting
lc_time = 'C'# locale for time formatting
--------------------------------------------------------------------------------------------
7.RUN(locale-ja_JP.utf8 ) 
# These settings are initialized by initdb, but they can be changed.
lc_messages = 'ja_JP.utf8'# locale for system error message
# strings
lc_monetary = 'ja_JP.utf8'# locale for monetary formatting
lc_numeric = 'ja_JP.utf8'# locale for number formatting
lc_time = 'ja_JP.utf8'# locale for time formatting
--------------------------------------------------------------------------------------------



ダウンロードできます

posted by a23 at 12:40| Comment(0) | PostgreSQL

Database encoding

Database encoding

The database postgres is created to store data using the SQL_ASCII encoding. This encoding is defined for 7 bit characters only; the meaning of characters with the 8th bit set (non-ASCII characters 127-255) is not defined. Consequently, it is not possible for the server to convert the data to other encodings. 
If you're storing non-ASCII data in the database, you're strongly encouraged to use a proper database encoding representing your locale character set to take benefit from the automatic conversion to different client encodings when needed. If you store non-ASCII data in an SQL_ASCII database, you may encounter weird characters written to or read from the database, caused by code conversion problems. This may cause you a lot of headache when accessing the database using different client programs and drivers. 
For most installations, Unicode (UTF8) encoding will provide the most flexible capabilities. 

003.png

RUNファイルから(ロケール C)でインストールした、サーバーに、リモートのpgAdmin3tからアクセスすると、最初に警告が。
posted by a23 at 12:07| Comment(0) | PostgreSQL