mysql系列之4.mysql字符集

来源:互联网 发布:贵州省大数据登录 编辑:程序博客网 时间:2024/05/16 06:44

针对mysql语句的临时办法:

 

先查看下mysql的各种编码设置情况, 如果结果显示有几项的编码不一致, 请先调整linux的系统编码

mysql> show variables like 'character_set%';

 

登录mysql后, 先手动设置编码, 然后才开始执行insert/update等操作

mysql> set names 'utf8';

 

在.sql文件中指定编码(set names 'utf8'), 然后登入mysql, 用source或mysql命令来导入sql语句

mysql> source test.sql

mysql> mysql -uroot -pabc123 test < test.sql

 

用mysql命令来导入sql语句, 并给mysql命令增加参数

mysql> mysql -uroot -pabc123 --default-character-set=utf8 test < test.sql

 

保证不乱码的终极办法:

 

linux系统:

vi /etc/sysconfig/i18n

LANG="zh_CN.utf8"

 

mysql: 修改my.cnf, 永久生效

[client]

default-character-set=utf8

[mysqld]

character-set-server=utf8  //mysql5.5的写法

 

mysql库表:

CREATE DATABASE test DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

CREATE TABLE `tb1`(

      id int(4) NOT NULL AUTO_INCREMENT,

      name char(20) NOT NULL,

      PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

 

程序文件: 编码必须是utf8

 

字符集

gbk: 长度2, 不是国际标准

utf8: 长度3, 适应于中英文混合环境

latin1: 长度1, mysql的默认字符集

utf8mb4: 长度4, utf8 unicode, 适应于移动互联网

 

生产环境把编码转为utf8

1.建库/建表的语句导出, sed批量修改为utf8

2.导出所有mysql数据

3.修改mysql服务端和客户端的编码为utf8

4.删除原有的库表和数据

5.导入新的建库/建表的语句

6.导入mysql的所有数据

 

 

 

 

 

 

 

0 0
原创粉丝点击