Я встановив оновлення Windows 10 Fall (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_Cechia.1250', і все почалося нормально, але проблема полягає в тому, що зараз я не можу підключитися до будь-якої бази даних, pgAdmin III дає мені таку помилку:
Чи є спосіб повернути дані? Я не можу створити дамп або запустити pg_upgrade, оскільки тепер у базах даних є недійсна локаль, і я не можу підключитися до них. Можливо, є спосіб змінити локальну базу даних вручну? Теоретично це не повинно викликати жодних проблем, оскільки його єдине інше ім'я для одного і того ж кодування.