PostgreSQL のスーパーユーザー postgres の LANG を、psql で日本語を扱うために ja_JP.EUC にしていた。
実は、こうすると postgres ユーザーでうまく postmaster が起動しない。
zakuro# su - postgres
%pg_ctl start
postmaster successfully started
%FATAL: XX000: failed to initialize lc_messages to ""
LOCATION: InitializeGUCOptions, guc.c:1866
successfully started とか出てるけど、実際には起動してない。(つーか、起動してすぐに落ちてる?)
何か、メッセージ出力の関係かなんかで、LANG=C でないと postmaster は起動しないのだ・・・という記述をWeb上で見つけたので、LANG=C の設定をして改めて起動を試みる。
%setenv | grep LANG
LANG=ja_JP.EUC
今は ja_JP.EUC を指定している。
%setenv LANG C
%setenv|grep LANG
LANG=C
%pg_ctl start
postmaster successfully started
%LOG: database system was shut down at 2005-03-27 01:23:37 JST
LOG: checkpoint record is at 0/15529E60
LOG: redo record is at 0/15529E60; undo record is at 0/0; shutdown TRUE
LOG: next transaction ID: 182767; next OID: 167927
LOG: database system is ready
%ps -aux|grep post
root 14380 0.0 0.6 1636 1136 p4 I Thu11PM 0:00.14 su - postgres
postgres 14381 0.0 0.9 2256 1624 p4 S Thu11PM 0:00.24 -su (csh)
postgres 22509 0.5 1.7 13500 2976 p4 S 1:32AM 0:00.16 /usr/local/pgsql/bin/postmaster (postgr
postgres 22511 0.0 1.6 5248 2884 p4 S 1:32AM 0:00.02 postmaster: stats buffer process (po
postgres 22512 0.0 1.6 4288 2900 p4 S 1:32AM 0:00.02 postmaster: stats collector process
postgres 22514 0.0 0.4 1396 772 p4 R+ 1:32AM 0:00.03 ps -aux
postgres 22515 0.0 0.3 1376 624 p4 R+ 1:32AM 0:00.02 grep post
おお、マジでこれで起動した。
LANG 設定くらいで起動を左右されるとは・・・。細かいところを気にしすぎ!!PostgreSQL め!!(笑)
起動してしまえばこっちのものなので、再度、LANG を EUC に戻す。
%source .cshrc
%setenv | grep LANG
LANG=ja_JP.EUC
%psql -n hirizen
Welcome to psql 7.4.3, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help on internal slash commands
\g or terminate with semicolon to execute query
\q to quit
hirizen=# select * from m_yukue;
hou_id | houmen | cdate | udate
--------+----------------------+---------------------+---------------------
10 | 十日市町 | 2005-03-11 00:00:00 | 2005-03-11 00:00:00
11 | 広島港 | 2005-03-11 00:00:00 | 2005-03-11 00:00:00
(2 rows)
hirizen=# INSERT INTO m_yukue (hou_id, houmen, cdate, udate) VALUES ('12','西広島','2005-03-27 01:44:00'::timestamp,'2005-03-27 01:44:00'::timestamp);
INSERT 167927 1
hirizen=# select * from m_yukue;
hou_id | houmen | cdate | udate
--------+----------------------+---------------------+---------------------
10 | 十日市町 | 2005-03-11 00:00:00 | 2005-03-11 00:00:00
11 | 広島港 | 2005-03-11 00:00:00 | 2005-03-11 00:00:00
12 | 西広島 | 2005-03-27 01:44:00 | 2005-03-27 01:44:00
(3 rows)
hirizen=# \q
%
ちゃんと日本語も INSERT 出来たので、これでいいのだ。
|
|