понедельник, 19 августа 2013 г.

postgresql: "postgres" ?? ?????? ???????? ??????????? (?? ??????)

Обнаружилось на одном сервере при перезапуске porstgresql такое:
# /etc/init.d/postgresql restart
[....] Restarting PostgreSQL 9.1 database server: mainpsql
[....] The PostgreSQL server failed to start. Please check the log output: 2013-08-19 11:21:00 MSK ???????: ??????? ?? ???? ?????????: 2013-08-19 11:20:58 MSK 2013-08-19 11:21:00 MSK ???????: ??????? ?? ?????? ????????? ??????????? 2013-08-19 11:21:00 MSK ???????: ??????? ??????? ??????????? ?????? 2013-08-19 11:21:00 MSK ???????: ???????? ????????? ????? 2013-08-19 11:21:00 MSK ?????: ???????????? "postgres" ?? ?????? ???????? ??????????? (?? ??????) 2013-08-19 11:21:01 MSK ?????: ???????????? "postgres" ?? ?????? ???????? ??????????? (?? ??????) 2013-08-19 11:21:01 MSK ?????: ???????????? "postgres" ?? ?????? ???????? ??????????? (?? ??????) 2013-08-19 11:21:02 MSK ?????: ???????????? "postgres" ?? ?????? ???????? ??????????? (?? ??????) 2013-08-19 11:21:03 MSK ?????: ???????????? "postgres" ?? ?????? ???????? ??????????? (?? ??????) 2013-08-19 11:21:03 MSK ?????: ???????????? "postgres" ?? ?????? ???????? ??????????? (?? ??????) 2013-08-19 11:21:04 MSK ?????: ???????????? "postgres" ?? ?????? ???????? ??????????? (?? ??????) 2013-08-19 11:21:04 MSK ?????: ???????????? "postgres" ?? ?????? ???????? ??????????? (?? ??????) 2013-08-19 11:21:05 MSK ?????: ???????????? "postgres" ?? ?????? ???????? ??????????? (?? ??????) 2013-08-19 11:21:05 MSK ?????: ???????????? "postgres" ?? ?????? ???????? ??????????? (?? ??????) 2013-08-19 11:21:06 MSK ?????: ???????????? "postgres" ?? ?????? ???????[FAIL???????? (?? ??????) ... failed!

 failed!

# cat /etc/debian_version
7.1

Очень похоже на глюки в перекодировке, потому что в putty что в режиме utf-8, что cp1251 - показывает только вопросы, что характерно (с).

#cat /etc/postgresql/9.1/main/postgresql.conf|grep -i utf
lc_messages = 'ru_RU.UTF-8'                     # locale for system error message
lc_monetary = 'ru_RU.UTF-8'                     # locale for monetary formatting
lc_numeric = 'ru_RU.UTF-8'                      # locale for number formatting
lc_time = 'ru_RU.UTF-8'                         # locale for time formatting

Вот и виновники. Вот какой идиот на СЕРВЕРЕ включает сообщения на русском? Это же не рабочая станция, вдобавок парсить логи потом будет той ещё проблемой.
Поправим этот дебилизам:
sed -i '' -e 's#ru_RU#en_US#g' /etc/postgresql/9.1/main/postgresql.conf

После этого в логе может появиться ругань
FATAL:  invalid value for parameter "lc_messages": "en_US.UTF-8"
(у нас появилось на машине с постгресом 9.1 + дебилян 7.1, тогда как 8.4 + 6 деб - ругани нет)

В этом случае самое простое -- закомментировать lc_* и всё заработает.

"правильный" фикс быстро найти не удалось, с комментированием и так вывод становится нормальным.

Комментариев нет:

Отправить комментарий