कारण और समाधान
ERROR 1115 (42000): Unknown character set: 'utf8mb4' त्रुटि तब होती है जब MySQL संस्करण **5.5.3 से पुराना** है। utf8mb4 कैरेक्टर सेट MySQL 5.5.3 में पेश किया गया था।
चरण 1: MySQL संस्करण जांचें
mysql> SELECT VERSION();
+-----------+
| version() |
+-----------+
| 8.0.12 |
+-----------+
1 row in set (0.00 sec)
यदि संस्करण < 5.5.3 है, तो **अपग्रेड आवश्यक** है।
चरण 2: उपलब्ध कैरेक्टर सेट देखें
mysql> SHOW CHARACTER SET;
आउटपुट (utf8mb4 शामिल)
+----------+---------------------------------+---------------------+--------+
| Charset | Description | Default collation | Maxlen |
+----------+---------------------------------+---------------------+--------+
| utf8mb4 | UTF-8 Unicode | utf8mb4_0900_ai_ci | 4 |
| utf8 | UTF-8 Unicode | utf8_general_ci | 3 |
| latin1 | cp1252 West European | latin1_swedish_ci | 1 |
| ... | ... | ... | ... |
+----------+---------------------------------+---------------------+--------+
41 rows in set (0.01 sec)
utf8mb4 सूची में मौजूद है - त्रुटि नहीं होगी।
utf8mb4 क्यों महत्वपूर्ण है?
| कैरेक्टर सेट | अधिकतम बाइट्स/कैरेक्टर | समर्थन |
|---|---|---|
utf8 (उर्फ utf8mb3) | 3 | बेसिक मल्टीलिंगुअल प्लेन (BMP) केवल |
utf8mb4 | 4 | **सभी यूनिकोड** (इमोजी, दुर्लभ चीनी अक्षर, आदि) |
यदि अपग्रेड संभव नहीं है (विरासत प्रणाली)
utf8(utf8mb3) का उपयोग करें - लेकिन इमोजी/दुर्लभ अक्षर टूटेंगे- एप्लिकेशन लेयर पर एन्कोडिंग संभालें
- डेटा माइग्रेशन योजना बनाएं
संस्करण अपग्रेड के बाद
- डिफ़ॉल्ट कैरेक्टर सेट सेट करें:
SET NAMES utf8mb4 - टेबल/कॉलम बदलें:
ALTER TABLE t CONVERT TO CHARACTER SET utf8mb4 - कनेक्शन स्ट्रिंग में
characterEncoding=utf8mb4जोड़ें
सर्वोत्तम अभ्यास: नए प्रोजेक्ट्स में हमेशा utf8mb4 और utf8mb4_unicode_ci या utf8mb4_0900_ai_ci कॉलेशन उपयोग करें।