MySQL数据库字符集乱码及库字符集更改

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL数据库字符集乱码及库字符集更改相关的知识,希望对你有一定的参考价值。

统一字符集保证不乱码:建议中英文环境选择utf8

1.linux系统语言

/etc/sysconfig/i18n

LANG="zh_CN.utf8"

 

2.mysql客户端

临时:

set names utf8;

永久:

配置文件my.cnf

[client]

default-charater-set=utf8


3.mysql服务端

[mysqld]

character-set-server=utf8

 

4.mysql建库建表语句

指定字符集建库

create database oldboy_utf8 default character set uft8 collate utf8_general_ci;

指定字符集建表

create table student (

id int(4) not null auto_increment,

name char(20) not null,

primary key(id)

)engine=inonodb auto_increment=10 default charset=utf8

 

5.开发程序的字符集


模拟将latin1字符集的数据库修改成GBK字符集的实际过程

1.导出表结构

mysqldump -uroot -p --default-character-set=latin1 -d dbname >alltatale.sql

--default-character-set=latin1 latin1连接 -d只导表结构

2.编辑alltable.sqllatin1改成gbk

sed替换

3.确保数据库不在更新,导出所有数据

mysqldump -uroot -p --quick --no-create-info --extended-insert --default-character-set=latin1 dbname >alldata.sql

 技术分享

4.打开alldata.sqlset names latin1修改成set names gbk;(或者修改系统的服务端和客户端)

5.建库

create database dbname default charset bgk;

6.创建表,执行alltable.sql

mysql -uroot -p dbname<alltable.sql

7.导入数据

mysql -uroot -dbname < alldata.sql


以上是关于MySQL数据库字符集乱码及库字符集更改的主要内容,如果未能解决你的问题,请参考以下文章

hibernate mysql写入中文乱码 解决

mysql恢复数据库没有指定字符集

mysql出现乱码

mysql字符集乱码问题

mysql数据库表里中文乱码应该选哪种编码?

mysql数据库表里中文乱码应该选哪种编码?