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

 wKioL1hDvOXQXg4pAAKbP5wYnIA523.png

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章