mysql 字符集入库失败_mysql数据库字符集问题

这段时间由于要将之前物理服务器上的数据库迁移到云主机上运行。在迁移mysql数据库使用了一段时间之后。一次进入数据库进行相关的数据库拉取发现数据库直接报错了。(以下为报错信息)

ERROR 1267 (HY000): Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='

通过上述报错应该是一个数据库里有两个字符所导致的。(抱歉:本人不是DBA)在谈论的时候不是太专业还请专业人士给予点评与指导。)

看到了上述报错,第一反应赶紧百度 google 可是悲剧的很,各种答案。很多答案只是说明了这个问题。然后给你一大堆的命令。但是关键的地方确就说说而已,没有看到实际操作命令。哎,没办法了不懂数据库看来很棘手啊。让云主机运营商的技术人员协助下吧。可是人家也么有解决好。只能自己来操作了。

以下下是我本人根据查找了各路高手的文档与说明自己整理的出来的步骤:

1.导出数据库mysqldump -u root -proot db01 > /data/db01.sql

或者添加上--opt --default-character-set=latin1

#例如:

mysqldump -u root -proot db01 > /data/db01.sql --opt --default-character-set=latin1

2.修改数据库

vim db01.sql%s/latin1/utf8/g

3.进入数据库新建数据库名create database db01 default character set utf8 collate utf8_general_ci;

(在新建的时候指定下数据库的字符集。貌似网上有说新建数据库时指定新的字符集就可以了。但是我试过没有奏效。)

4.导入数据库mysql -u root -p db01  --default-character-set=utf8 

(这里网上也有说过在导入的时候指定下新的字符集就可以了。但是我的还是没有奏效)

做到这里就OK了。然后我进入数据库发现没有问题了。居然解决了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值