MySQL / MariaDB सर्वर कोलेशन विकल्प को नहीं बदल सकते


1

मैं सर्वर के collation_serverवैरिएबल डिफॉल्ट ऑप्शन को latin1_swiki_ci से utf8_general_ci में बदलने की कोशिश कर रहा हूं /etc/my.cnf.d/mariadb-server.cnf, प्रत्येक कोशिश पर एक अलग समूह के तहत इसे कॉन्फिग फाइल में जोड़ देता हूं , लेकिन यह काम नहीं करेगा। जब मैं डेमॉन को पुनरारंभ करने का प्रयास करता हूं तो यह हमेशा विफल रहता है जब तक कि मैं इसे टिप्पणी नहीं करता या लाइन को हटा नहीं देता। मैं इस चर को कैसे बदल सकता हूं ताकि यह पुनरारंभ के दौरान भी लगातार बना रहे?

मैंने http://dev.mysql.com/doc/refman/5.6/en/server-options.html#option_mysqld_collation-server और http://dev.mysql.com पर आधिकारिक संदर्भ पृष्ठों पर इसे पूरा करने का तरीका पढ़ा है। /doc/refman/5.6/en/option-files.html लेकिन वे मेरे लिए कोई मदद के नहीं थे।

धन्यवाद।


लिनक्स शेल में लॉगिन करें और निम्नलिखित चलाएँ mysqld --help --verbose 2>/dev/null | grep my | grep cnf | head -1:। आउटपुट क्या है ???
रोलैंडमाइसीडीडीबीए

आउटपुट है, /etc/my.cnf ~/.my.cnfलेकिन मैं mysqlइसके बजाय भाग गया mysqld
एरियलएमएनज

कृपया mysqld --help --verbose 2>/dev/null | grep my | grep cnf | head -1पहले बताए अनुसार चलाएं । आउटपुट क्या है ??? (मैंने mysqld को निर्दिष्ट किया क्योंकि आपने कहा था कि आप सर्वर के collation_server को बदलने की कोशिश कर रहे हैं)।
रोलैंडमाइसीडीडीबीए

Mysql के बजाय mysqld का उपयोग करना: कुछ भी नहीं। क्योंकि mysqld एक कमांड नहीं है।
एरियलएनएमज

हाँ, यह निश्चित रूप से एक आदेश है। ( dev.mysql.com/doc/refman/5.6/en/mysqld.html ) mysqld सर्वर प्रक्रिया है। यह एक कमांड है जिसे आप कमांड लाइन पर विकल्प देखने के लिए चला सकते हैं। mysqld एक ही डेटा पर दो सर्वर डेमॉन की अनुमति नहीं देगा। एक बार जब वह ऐसा कर रहा है, तो आप यह कह सकते mysqld --help --verboseहैं कि प्रलेखन कहता है (जो मैंने वर्षों से किया है)
रोलैंडमाइसीडीडीबीए

जवाबों:


1

मैं अंत में इसे हल करने में कामयाब रहा हूं। लॉग को देखकर मैंने यह कहते हुए एक त्रुटि देखी कि 'utf8_general_ci' is not valid for CHARACTER SET 'latin1'थोड़ा गुगुल करने से, समाधान इस पोस्ट में एक ब्लॉग में था , उद्धरण:

इस मामले में mysqld चरित्र-सेट-सर्वर = लैटिन 1 और कॉलेशन-सर्वर = utf8_general_ci के साथ शुरू करने की कोशिश कर रहा है, जो मान्य नहीं है।

इसलिए समाधान या तो एक वैध लेट 1 कोलाज सेट करना है या सर्वर के कैरेक्टर सेट को बदलना है, जो मैंने किया था:

character-set-server = utf8
collation-server = utf8_general_ci

ब्लॉक के तहत मेरी cnf फ़ाइल ( /etc/my.cnf.d/mariadb-server.cnf ) पर [server]। धन्यवाद।


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