我知道已经有很多类似的问题,很多甚至相同;我花了最后45分钟来寻找可能的解决方案,但我找不到任何解决方案都没有回答我所有的问题/关注。
我通过CLI获得了这个可能的解决方案:
mysql --user=username --password=your_pass --database=dbname -B -N -e
"SHOW TABLES" | awk '{print "ALTER TABLE", $1, "CONVERT TO CHARACTER SET utf8
COLLATE utf8_unicode_ci;"}' | mysql --user=username --password=your_pass
--database=dbname &
然后我们从this page得到一个,基本上这样做:
mysqldump --add-drop-table -u root --password='password' db_name | sed
-e 's/CHARSET\=latin1/CHARSET\=utf8\ COLLATE\=utf8_unicode_ci/g' | iconv -f
latin1 -t utf8 | mysql -u root --password='password' db_name
然而,这个似乎你必须一次做一张桌子。
然后有this one,除了它只是字符集和不整理这个事实之外,这听起来很糟糕。
所以基本上我正在寻找类似于最后一个将转换整个数据库的charset 和排序规则的解决方案,并且是一个做得很好的解决方案,例如正确转换包括全文密钥的表索引正如上一篇文章所指出的那样。
我不确定前两个解决方案在正确转换索引方面有多好。
所以有了这么多解决方案,我只是在找一个可以正确转换的东西,包括表格,列和放大器。索引。