निम्नलिखित चेकलिस्ट पर विचार करें:
-
क्या आपने अपनी MySQL कॉन्फ़िगरेशन फ़ाइल (/etc/my. सीएनएफ) ? यह होना चाहिए:
[client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci
और आप इनके द्वारा सत्यापित कर सकते हैं:
mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%'; +--------------------------+--------------------+ | Variable_name | Value | +--------------------------+--------------------+ | character_set_client | utf8mb4 | | character_set_connection | utf8mb4 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | utf8mb4 | | character_set_server | utf8mb4 | | character_set_system | utf8 | | collation_connection | utf8mb4_unicode_ci | | collation_database | utf8mb4_unicode_ci | | collation_server | utf8mb4_unicode_ci | +--------------------------+--------------------+ 10 rows in set (0.00 sec)
- माथियास की ब्लॉग पोस्ट के लिए धन्यवाद
-
एनफोर्स यूटीएफ -8 को पायथन और माईएसक्यूएल के बीच इस्तेमाल करने के लिए लागू करें:
# Connect to mysql. dbc = MySQLdb.connect(host='###', user='###', passwd='###', db='###', use_unicode=True) # Create a cursor. cursor = dbc.cursor() # Enforce UTF-8 for the connection. cursor.execute('SET NAMES utf8mb4') cursor.execute("SET CHARACTER SET utf8mb4") cursor.execute("SET character_set_connection=utf8mb4") # Do database stuff. # Commit data. dbc.commit() # Close cursor and connection. cursor.close() dbc.close()
-
MySQL का आधिकारिक सुझाव के संबंध में
Can't initialize character set
:इस त्रुटि के निम्न में से कोई भी कारण हो सकते हैं:
-
कैरेक्टर सेट एक मल्टीबाइट कैरेक्टर सेट है और क्लाइंट में कैरेक्टर सेट के लिए आपके पास कोई सपोर्ट नहीं है। इस मामले में, आपको
-DDEFAULT_CHARSET=charset_name
के साथ सीएमके चलाकर क्लाइंट को फिर से कंपाइल करना होगा। या-DWITH_EXTRA_CHARSETS=charset_name
विकल्प। अनुभाग देखें 2.9.4, “MySQL Source-Configuration विकल्प” । -
सभी मानक MySQL बायनेरिज़ -
DWITH_EXTRA_CHARSETS=complex
के साथ संकलित हैं , जो सभी मल्टीबाइट कैरेक्टर सेट के लिए समर्थन सक्षम करता है। अनुभाग देखें 2.9.4, “MySQL Source-Configuration विकल्प” । -
कैरेक्टर सेट एक साधारण कैरेक्टर सेट है जिसे mysqld में संकलित नहीं किया गया है, और कैरेक्टर सेट डेफिनिशन फाइलें उस जगह पर नहीं हैं जहां क्लाइंट उन्हें ढूंढने की उम्मीद करता है।
इस मामले में, आपको समस्या को हल करने के लिए निम्न विधियों में से एक का उपयोग करने की आवश्यकता है:
-
चरित्र सेट के समर्थन के साथ क्लाइंट को पुन:संकलित करें। अनुभाग देखें 2.9.4, “MySQL Source-Configuration विकल्प” ।
-
क्लाइंट को वह निर्देशिका निर्दिष्ट करें जहां वर्ण सेट परिभाषा फ़ाइलें स्थित हैं। कई क्लाइंट के लिए, आप इसे
--character-sets-dir
. के साथ कर सकते हैं विकल्प। -
चरित्र परिभाषा फ़ाइलों को उस पथ पर कॉपी करें जहां क्लाइंट उनसे होने की अपेक्षा करता है।
-
-