विंडोज 10 फॉल अपडेट के बाद PostgreSQL 9.5 शुरू नहीं होगा


13

मैंने विंडोज 10 फॉल अपडेट (1709) स्थापित किया है और अब मेरा पोस्टग्रेक्यूएल 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 ने फ़ॉल अपडेट के साथ स्थानीय नाम बदल दिया, मुझे उपलब्ध लोकेल नामों की कोई सूची नहीं मिली, इसलिए मैंने Postgres 10 स्थापित करने का निर्णय लिया और इसने मेरे संदेह की पुष्टि की, Postgresql.conf इन पोस्टग्रेज़ 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_Ceshopia.1250' में बदल दिया और यह ठीक शुरू हो गया, लेकिन समस्या यह है कि अब मैं किसी भी डेटाबेस से कनेक्ट नहीं कर सकता, pgAdmin III मुझे निम्न त्रुटि देता है:

pgAdmin त्रुटि

क्या डेटा वापस पाने का कोई तरीका है? मैं डंप नहीं बना सकता या pg_upgrad को रन नहीं कर सकता क्योंकि डेटाबेस में अब अमान्य लोकेल है और मैं उनसे कनेक्ट नहीं कर सकता। हो सकता है कि डेटाबेस का स्थान मैन्युअल रूप से बदलने का कोई तरीका हो? सिद्धांत रूप में, यह किसी भी समस्या का कारण नहीं होना चाहिए क्योंकि एक ही एन्कोडिंग के लिए इसका अलग नाम है।


2
हो सकता है कि आप लापता लोकेल को उनके लोकेल बिल्डर टूल के साथ कस्टम लोकेल के रूप में फिर से बना सकें ।
डैनियल वेत्रे

जवाबों:


12

डैनियल वेत्रे के सुझाव के लिए धन्यवाद मैं इसे पूरे डीबी सर्वर को डंप किए बिना ठीक करने में सक्षम था। विंडोज पर स्थानों की मेरी समझ बहुत सीमित है, लेकिन मैंने जो सीखा है उससे ऐसा लगता है जैसे माइक्रोसॉफ्ट ने चेक लोकल का नाम बदलकर "चेक रिपब्लिक" से "चेकिया" में फॉल क्रिएटर्स अपडेट के दौरान रखा है (संभवतः इसलिए यह आईएसओ 3166-1 के अनुरूप है) ।

भाषा के नाम और क्षेत्र के नाम के मेल से किसी तरह लोकल लोड होता है, इसलिए इस परिवर्तन से पहले बनाए गए डेटाबेस को जोड़ा नहीं जा सकता क्योंकि भाषा और क्षेत्र का संयोजन अब मान्य नहीं है।

तो इसे ठीक करने के लिए, मैंने Microsoft से लोकेल बिल्डर 2.0 डाउनलोड किया , और फिर:

  1. चेक लोकेल (cs-CZ) पर आधारित नया लोकल बनाया गया, उसी लोकेल का नाम (cs-CZ) रखा गया
  2. क्षेत्र का नाम "चेक गणराज्य" ("चेकिया" से)
  3. "बिल्ड" -> "बिल्ड लोकेल इंस्टॉलर" का चयन करके इंस्टॉलर बनाया गया
  4. पिछले चरण में बनाई गई .msi फ़ाइल चलाकर नए बनाए गए स्थान को स्थापित किया
  5. PostgreSQL सर्वर को पुनरारंभ किया, इस बार यह समस्या के बिना शुरू हुआ

अब मैं PostgreSQL 9.5 को 'चेक_कॉच रिपब्लिक -1250' और 'चेक_कैशिया.1250' के साथ पोस्टग्रेक्यूएल 10 चला सकता हूं और वे दोनों काम करते हैं।

मुझे यकीन नहीं है कि एक ही स्थानीय नाम (cs-CZ) के साथ लोकेल बनाना ठीक है, लेकिन यह किसी भी समस्या का कारण नहीं लगता है, शायद कोई और अधिक विस्तार कर सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.