2015-05-18 8 views
5

मैं अपने सर्वर में डेटाबेस में इमोजी स्टोर करने की कोशिश कर रहा हूं। (उबंटू)इमोजी को MySQL 5.6 में ठीक से संग्रहीत नहीं किया गया है collation utf8mb4

- 5.6.19-0ubuntu0.14.04.1:

ओएस: ubuntu0.14.04.1

MySQL संस्करण मैं एडब्ल्यूएस EC2 उदाहरण का उपयोग कर रहा सर्वर के रूप में, अपने सर्वर विवरण नीचे सूचीबद्ध हैं

डाटाबेस क्लाइंट संस्करण:

: libmysql - - mysqlnd 5.0.11-देव 20120503

मैं निम्नलिखित एसक्यूएल के साथ एक डेटाबेस परीक्षण और सर्वर में तालिका इमोजी बनाया

जब मैं निम्नलिखित डालने पर अमल करने की कोशिश की, एक चेतावनी दिखाई देता है और डेटा ठीक से संग्रहीत नहीं हैं:

INSERT INTO `test`.`emoji` (`id` , `text`) VALUES (NULL , ' '); 

सम्मिलित की गई पंक्ति आईडी: 3

चेतावनी: # 1366 गलत स्ट्रिंग मान: ' \ xF0 \ x9F \ x91 \ x86 \ xF0 पाठ 'पंक्ति 1

मूल्य पर पाठ स्तंभ में संग्रहीत' कॉलम के लिए '... है: ???? ???? ???? ????

वही परिदृश्य मेरे स्थानीय डेटाबेस के लिए काम करता है और मान ठीक से संग्रहीत होते हैं। ओएस (विंडोज) को छोड़कर लगभग सभी कॉन्फ़िगरेशन मेरे स्थानीय में समान हैं।

+1

कृपया 'टेबल टेस्ट टेस्ट करें .emoji \ G' - मैं यह देखना चाहता हूं कि इसे बनाने के बाद किसी भी तरह से उलझा हुआ है या नहीं। –

+0

वाट आपने 'INSERT' को किस प्रॉम्प्ट पर चलाया है जो असफल रहा है? (F09F9186 सही लग रहा है।) –

+0

CREATE TABLE 'emoji' ( ' id' पूर्णांक (10) अहस्ताक्षरित नहीं NULL AUTO_INCREMENT, 'text' varchar (255) नहीं NULL, प्राथमिक कुंजी (' id') ) इंजन = InnoDB AUTO_INCREMENT = 4 डिफॉल्ट CHARSET = utf8mb4 –

उत्तर

1

मैं SqlWorkbench का उपयोग करके अपनी समस्या को फिर से बनाने में सक्षम था। इससे पहले कि आप चरित्र सेट संरेखित करने के लिए डालने बयान चलाने

रन इस बयान और मिलान:

आप ग्राहक सबसे अधिक संभावना db जिसका वर्ण सेट तालिका के वर्ण सेट से मेल नहीं खाता करने के लिए एक कनेक्शन स्थापित कर लिया हो कनेक्शन:

SET NAMES utf8mb4 COLLATE utf8mb4_general_ci 

उम्मीद है कि इससे मदद मिलती है, चरित्र सेट मुश्किल हो सकते हैं।

संबंधित मुद्दे