से एक MySQL डेटाबेस कनवर्ट करें मैं आईएसओ से यूटीएफ -8 में एक वेबसाइट को परिवर्तित कर रहा हूं, इसलिए मुझे MySQL डेटाबेस को भी परिवर्तित करने की आवश्यकता है।लैटिन से यूटीएफ -8
इंटरनेट पर, मैंने विभिन्न समाधान पढ़े, मुझे नहीं पता कि कौन सा चयन करना है।
मैं वास्तव में मेरे varchar स्तंभ बाइनरी में, इस तरह UTF-8 में तो कन्वर्ट करने के लिए की जरूरत है:
ALTER TABLE t MODIFY col BINARY(150);
ALTER TABLE t MODIFY col CHAR(150) CHARACTER SET utf8;
यह एक लंबे समय क्या करना है कि प्रत्येक स्तंभ के लिए, हर तालिका के, प्रत्येक डेटाबेस के लेता है ।
मेरे पास 10 टेबल हैं, जिनमें से प्रत्येक के साथ 20 टेबल हैं, लगभग 2 - 3 वर्चर कॉलम (2 कॉलम प्रत्येक प्रश्न) के साथ, यह मुझे 1000 प्रश्न लिखने के लिए देता है! यह कैसे करना है?
हल:
PASSWORD=""
db=$1
mysqldump --password=$PASSWORD --set-charset --skip-set-charset --add-drop-table --databases "$db" > /home/dev/backup/bdd.sql
QUERY="ALTER DATABASE \`$db\` DEFAULT CHARACTER SET utf8;"
mysql --password=$PASSWORD --database "$db" -e "$QUERY"
mysql --password=$PASSWORD --default-character-set=utf8 < /home/dev/backup/bdd.sql
अधिक जानकारी के लिए नीचे दिए गए जवाब देखें: मैं कोड है कि मैं का इस्तेमाल किया है पोस्ट।
'--set-charset' और' --skip-सेट charset' सीधे झंडे प्रतिस्पर्धा नहीं कर रहे हैं? डॉक्स का कहना है कि वे 'सेट नाम' के उपयोग को प्रभावित करते हैं, लेकिन 'DEFAULT CHARSET = X' पैरामीटर सेट नहीं करते हैं जो प्रति तालिका 'mysqldump' के माध्यम से आउटपुट होता है। (mysql 5.5) – fideloper