欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL命令行界面中出现字符错误提示的原因及解决方法

程序员文章站 2024-02-20 20:41:47
error 2019 (hy000): can't initialize character set gb2312 搞了好半天,mysql都重装了两次,号悲剧。。。 之...

error 2019 (hy000): can't initialize character set gb2312
搞了好半天,mysql都重装了两次,号悲剧。。。
之前设置了系统编码全都是utf-8了的

vi /etc/sysconfig/i18n 

 

lang=zh_cn.utf-8 
language=zh_cn.utf-8:zh_cn.gb2312:zh_cn 
supported=zh_cn.utf-8:zh_cn:zh:en_us.utf-8:en_us:en 
sysfont=lat0-sun16 

数据库也一直配置的 utf8

cmake -dcmake_install_prefix=/usr/local/mysql \ 
-dmysql_unix_addr=/usr/local/mysql/mysql.sock \ 
-ddefault_charset=utf8 \ 
-ddefault_collation=utf8_general_ci \ 
-dwith_extra_charsets:string=utf8,gbk \ 
-dwith_myisam_storage_engine=1 \ 
-denabled_local_infile=on \ 
-dwith_innobase_storage_engine=1 \ 
-dwith_readline=1 \ 
-denabled_local_infile=1 \ 
-dmysql_datadir=/var/mysql/data 

不知道怎么冒出个 gb2312 来
找了好久最后终于发现应该是终端输入内容编码的问题,想起之前为了让 ssh 正常显示中文修改了

vi /etc/profile  
lang=zh_cn.gb2312 
export lang 


这地方给修改过的原因,于是将它注释掉然后关了 ssh 重新链接后执行命令就正常了,

ps:mysql导入乱码解决
导入时出现乱码,需要在语句中添加指定导入数据的编码格式:

mysql -uroot -p database_name < database_backup.sql --default-character-set=utf8