数据库编码

粗人-512794511 2013-08-23 12:17:58
我数据库编码是 gbk 表编码 gbk 字段编码gbk 可是查询出来的内容是utf-8的编码,
提示错误:

[Err] 1267 - Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='


网上资料都说先查一下数据库中编码设置 然后更新一下编码设置。
我查询了 SHOW VARIABLES LIKE 'character_set_%'; :
character_set_client utf8
character_set_connection utf8
character_set_database gbk
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir D:\my\myserver\share\charsets\


然后我就开始设置:
set character_set_client =gbk;

set character_set_connection =gbk;

set character_set_database =gbk;

set character_set_results =gbk;

set character_set_server =gbk;

set character_set_system =gbk;


返回信息:
[SQL] set character_set_client =gbk;
受影响的行: 0
时间: 0.000s

[SQL]

set character_set_connection =gbk;
受影响的行: 0
时间: 0.000s

[SQL]

set character_set_database =gbk;
受影响的行: 0
时间: 0.000s

[SQL]

set character_set_results =gbk;
受影响的行: 0
时间: 0.000s

[SQL]

set character_set_server =gbk;
受影响的行: 0
时间: 0.000s

[SQL]

set character_set_system =gbk;
[Err] 1238 - Variable 'character_set_system' is a read only variable


然后我在当前窗口在次查询:
character_set_client gbk
character_set_connection gbk
character_set_database gbk
character_set_filesystem binary
character_set_results gbk
character_set_server gbk
character_set_system utf8
character_sets_dir D:\my\myserver\share\charsets\


然后我新建一个窗口查询

character_set_client utf8
character_set_connection utf8
character_set_database gbk
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir D:\my\myserver\share\charsets\


两个窗口中显示的结果是不一样的。。。。
最重要的是现在仍然还是报错。。。
...全文
244 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eric_cspn 2015-11-30
  • 打赏
  • 举报
回复

--------------------- 修改ini文件
[client]
default-character-set=utf8

character-set-server=utf8
wwwwb 2013-08-28
  • 打赏
  • 举报
回复
先用MYSQLDUMP导出数据,在统一的字符集下重新表、库,再导入数据
齐岳 2013-08-27
  • 打赏
  • 举报
回复
MySql修改数据库编码为UTF8 这需要修改my.ini 文件,写sql语句是起不到效果的,你参考上面的博客改一下
粗人-512794511 2013-08-26
  • 打赏
  • 举报
回复

update 

表1,(select '130505' as 编号,'1' as 类型,表1.A from 表1 where id='1' )临时表 

set 

表1.B=临时表.编号 

where 

表1.A=临时表.A
'130505' as 编号,'1' as 类型 这里是直接写进去的数据 所以我把这里去掉 就不报这个错误了。。。 但是不是很明白原因 求个解释。。谢谢
rucypli 2013-08-23
  • 打赏
  • 举报
回复
引用 2 楼 shayeyekai 的回复:
[quote=引用 1 楼 rucypli 的回复:] 你这样设置的只对本session有效 应该set global character_set_database=gbk;
改加了 global, 效果和之前还是一样。。。是否还有其他原因呢?[/quote] 不可能的 你再试试 改了之后不需要重启 重启又会读配置文件用默认值
粗人-512794511 2013-08-23
  • 打赏
  • 举报
回复
引用 1 楼 rucypli 的回复:
你这样设置的只对本session有效 应该set global character_set_database=gbk;
改加了 global, 效果和之前还是一样。。。是否还有其他原因呢?
rucypli 2013-08-23
  • 打赏
  • 举报
回复
你这样设置的只对本session有效 应该set global character_set_database=gbk;
粗人-512794511 2013-08-23
  • 打赏
  • 举报
回复
引用 3 楼 rucypli 的回复:
[quote=引用 2 楼 shayeyekai 的回复:] [quote=引用 1 楼 rucypli 的回复:] 你这样设置的只对本session有效 应该set global character_set_database=gbk;
改加了 global, 效果和之前还是一样。。。是否还有其他原因呢?[/quote] 不可能的 你再试试 改了之后不需要重启 重启又会读配置文件用默认值[/quote] 还是不行 我是在navicat for mysql里面操作的这些语句。我没有重启mysql服务 也是不行。 好像只有一个设置生效了 character_set_client utf8 character_set_connection utf8 character_set_database gbk character_set_filesystem binary character_set_results utf8 character_set_server gbk(这里之前也是utf8 现在生效了这一个) character_set_system utf8 character_sets_dir D:\my\myserver\share\charsets\

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧