Я установил Windows 10 Fall Update (1709) и теперь мой сервер PostgreSQL 9.5 не запускается. Это работало вчера перед обновлением, и я не внес никаких изменений в конфигурацию.
Я проверил просмотрщик событий и нашел следующие сообщения об ошибках:
2017-10-19 11:32:32 CEST LOG: invalid value for parameter "lc_monetary": "Czech_Czech Republic.1250"
2017-10-19 11:32:32 CEST LOG: invalid value for parameter "lc_numeric": "Czech_Czech Republic.1250"
2017-10-19 11:32:32 CEST LOG: invalid value for parameter "lc_time": "Czech_Czech Republic.1250"
2017-10-19 11:32:32 CEST FATAL: configuration file "C:/Program Files/PostgreSQL/9.5/data/postgresql.conf" contains errors
Похоже, что Microsoft изменила имя локали с обновлением Fall, я не смог найти список доступных имен локалей, поэтому я решил установить Postgres 10, и это подтвердило мое подозрение, postgresql.conf в Postgres 10 теперь читает:
# These settings are initialized by initdb, but they can be changed.
lc_messages = 'Czech_Czechia.1250' # locale for system error message
# strings
lc_monetary = 'Czech_Czechia.1250' # locale for monetary formatting
lc_numeric = 'Czech_Czechia.1250' # locale for number formatting
lc_time = 'Czech_Czechia.1250' # locale for time formatting
Я изменил значения конфигурации сервера PostgreSQL 9.5 на «Czech_Czechia.1250», и все началось нормально, но проблема в том, что теперь я не могу подключиться к какой-либо базе данных, pgAdmin III выдает мне следующую ошибку:
Есть ли способ вернуть данные? Я не могу создать дамп или запустить pg_upgrade, так как базы данных теперь имеют неверный языковой стандарт, и я не могу подключиться к ним. Может быть, есть способ изменить локаль базы данных вручную? Теоретически, это не должно вызывать никаких проблем, так как это только другое имя для одной и той же кодировки.