Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

Windows mysql-python के साथ वर्ण सेट utf8mb4 प्रारंभ नहीं कर सकता

निम्नलिखित चेकलिस्ट पर विचार करें:

  1. क्या आपने अपनी 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)
    

    - माथियास की ब्लॉग पोस्ट के लिए धन्यवाद

  2. एनफोर्स यूटीएफ -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()
    
  3. 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 . के साथ कर सकते हैं विकल्प।

      • चरित्र परिभाषा फ़ाइलों को उस पथ पर कॉपी करें जहां क्लाइंट उनसे होने की अपेक्षा करता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sqljocky डेटाबेस को समकालिक रूप से क्वेरी कर रहा है

  2. एसक्यूएल दो अलग-अलग तालिकाओं से दो कॉलम की तुलना कैसे करें

  3. लंबी PHP स्क्रिप्ट चलाते समय मैं मेमोरी को कैसे साफ़ कर सकता हूँ? अनसेट करने की कोशिश की ()

  4. तालिका बनाने के बाद तालिका मौजूद नहीं है

  5. MySQL से तनाव दूर करने के लिए PHP के साथ कैशिंग