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

गलत स्ट्रिंग मान त्रुटियों को कैसे ठीक करें?

अपडेट करें नीचे दिए गए उत्तर के लिए:

जिस समय सवाल पूछा गया था, MySQL में "UTF8" का मतलब utf8mb3 . था . इस बीच, utf8mb4 जोड़ा गया था, लेकिन मेरी जानकारी के लिए MySQLs "UTF8" को मतलब utf8mb4 पर स्विच नहीं किया गया था ।

इसका मतलब है कि, यदि आपका मतलब है तो आपको विशेष रूप से "utf8mb4" डालना होगा (और आपको utf8mb4 का उपयोग करना चाहिए )

मैं इसे केवल उत्तर संपादित करने के बजाय यहां रखूंगा, यह स्पष्ट करने के लिए कि "UTF8" कहने में अभी भी अंतर है

मूल

मैं रिचीज के जवाब का सुझाव नहीं दूंगा, क्योंकि आप डेटाबेस के अंदर डेटा खराब कर रहे हैं। आप अपनी समस्या को ठीक नहीं करेंगे, लेकिन इसे "छिपाने" की कोशिश करेंगे और खराब डेटा के साथ आवश्यक डेटाबेस संचालन करने में सक्षम नहीं होंगे।

यदि आप इस त्रुटि का सामना करते हैं तो या तो आपके द्वारा भेजा जा रहा डेटा UTF-8 एन्कोडेड नहीं है, या आपका कनेक्शन UTF-8 नहीं है। सबसे पहले, सत्यापित करें कि डेटा स्रोत (एक फ़ाइल, ...) वास्तव में UTF-8 है।

फिर, अपना डेटाबेस कनेक्शन जांचें, कनेक्ट करने के बाद आपको यह करना चाहिए:

SET NAMES 'utf8mb4';
SET CHARACTER SET utf8mb4;

इसके बाद, सत्यापित करें कि जिन तालिकाओं में डेटा संग्रहीत है, उनमें utf8mb4 वर्ण सेट है:

SELECT
  `tables`.`TABLE_NAME`,
  `collations`.`character_set_name`
FROM
  `information_schema`.`TABLES` AS `tables`,
  `information_schema`.`COLLATION_CHARACTER_SET_APPLICABILITY` AS `collations`
WHERE
  `tables`.`table_schema` = DATABASE()
  AND `collations`.`collation_name` = `tables`.`table_collation`
;

अंत में, अपनी डेटाबेस सेटिंग जांचें:

mysql> show variables like '%colla%';
mysql> show variables like '%charac%';

अगर स्रोत, परिवहन और गंतव्य utf8mb4 हैं, तो आपकी समस्या दूर हो गई है;)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में एक कॉलम का कोलाजेशन कैसे दिखाएं

  2. डेटाबेस सेटअप करें और AWS Redshift और Mysql में केवल-पढ़ने के लिए उपयोगकर्ता बनाएं

  3. गणना के रूप में COUNT(*) चुनें - इस गणना का उपयोग कैसे करें

  4. MySQL में टेबल को कैसे छोटा करें

  5. mysqli::query ():mysqli नहीं ला सका