mysql 导入导出数据库中文乱码问题 latin1 utf8 utf8_unicode_ci

时间:2023-01-06 11:49:20

问题描述:原始创建的数据库和表都是CHARSET=latin1,导出(指定格式和不指定格式都尝试)数据库,

导入(指定格式和不指定格式都尝试)另外机器的数据库,结果乱码!!

mysql 导入导出数据库中文乱码问题 latin1 utf8 utf8_unicode_ci


原因分析:由于原始导出的.sql文件中的CHARSET都是 Latin1格式,在导出时,指定格式--default-character-set=utf8并不管用

我是直接将.sql 脚本文件中的字符编码格式转成 utf8.如下是我记录的步骤


导出数据库:
$>mysqldump -u root -p123 --default-character-set=latin1 shop > /root/shop.sql

 $>sed -e 's/SET NAMES latin1/SET NAMES utf8/g' -i /root/shop.sql
 $>sed -i -e 's/CHARSET=latin1/CHARSET=utf8 COLLATE=utf8_unicode_ci/g' /root/shop.sql
 $>vi /root/shop.sql (查看是否转换成功)
 $>cp /root/shop.sql /media/sf_Public/

导入数据库:
mysql> create database shop character set utf8 collate utf8_unicode_ci;
$> mysql --default-character-set=utf8 -u root -p shop < ./shop.sql 

mysql 导入导出数据库中文乱码问题 latin1 utf8 utf8_unicode_ci