`
sony-soft
  • 浏览: 1022167 次
文章分类
社区版块
存档分类
最新评论

mysql 5.x使用utf8作为默认字符集

 
阅读更多

mysql 5.x使用utf8作为默认字符集

url: http://blogold.chinaunix.net/u/16288/showart_1949661.html

默认情况下mysql使用latin1作为自己的默认字符集,为使mysql使用utf8作为默认字符集我们可以通过以下几个步骤来实现:

一、修改/etc/my.cnf配置文件:
1. 在[mysqld]段中添加default-character-set=utf8
2. 添加一个[client]段并在其后添加default-character-set=utf8

二、重启mysql服务
service mysqld restart

三、验证结果
mysql -u root -p
mysql> show variables like 'character_set_%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

mysql> show variables like 'collation_%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+


备注:(以下从网络摘抄)
另外可以通过CREATE DATABASE `database` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;来建立utf8字符集的数据库



我们可以完全无视数据库默认的字符集是什么,我们关心的只有数据库在建立的时候是不是加入了字符集
选择。

(1)使用如下指令建立数据库:


CREATE DATABASE `database` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

(2)客户端php程序使用如下方法设定连接所使用的字符集:
PHP程序在查询数据库之前,执行mysql_query("set names utf8;");

例子:

1. 2. mysql_connect('localhost','user','password');
3. mysql_select_db('my_db');
4.
5. //请注意,这步很关键,如果没有这步,所有的数据读写都会不正确的
6. //它的作用是设置本次数据库联接过程中,数据传输的默认字符集
7. mysql_query("set names utf8;");
8.
9. //必须将gb2312(本地编码)转换成utf-8,也可以使用iconv()函数
10. mysql_query(mb_convet_encoding("insert into my_table values('测试');", "utf-8", "gb2312"));
11. ?>

(3)如果你想使用gb2312编码,那么建议你使用latin1作为数据表的默认字符集,这样就能直接用中
文在命令行工具中插入数据,并且可以直接显示出来.而不要使用gb2312或者gbk等字符集,如果担心查询
排序等问题,可以使用binary属性约束,例如:
create table my_table ( name varchar(20) binary not null default '')type=myisam default charset latin1;

自此,使用utf8字符集的完整的例子结束了。

三、旧数据升级办法

(1) 导出数据库:

mysqldump -uroot -p123456 --default-character-set=latin1 --set-charset=utf8 --opt olddatabase > newdatabase.sql

(2) 修改newdatabase.sql,在文件开头增加一条sql语句: “SET NAMES utf8;“,保存。

(3)mysql -hlocalhost -uroot my_db

分享到:
评论

相关推荐

    MySql 5.1 参考手册.chm

    10.3. 确定默认字符集和校对 10.3.1. 服务器字符集和校对 10.3.2. 数据库字符集和校对 10.3.3. 表字符集和校对 10.3.4. 列字符集和校对 10.3.5. 字符集和校对分配示例 10.3.6. 连接字符集和校对 10.3.7. 字符串文字...

    flowable相关数据库表mysql, 包含两种字符集utf8 和 utf8bm4

    springboot在集成flowable时,添加flowable依赖,配置完成数据库连接,项目第一次启动会初始化数据库flowable相应的表,默认会加载的字符集为utf8(CHARSET=utf8 COLLATE utf8_bin),在mysql8后,在创建数据库时,...

    MySQL修改默认字符集编码的方法

    今天又遇到修改MySQL默认字符集编码的问题,折腾了半天解决了,赶快记录下来,以后就不用每次折腾了。 查看MySQL字符集的命令是“show variables like ‘%char%’;”。 以MySQL5.6为例,默认的字符集为: 在工作...

    Unity3D教程:修改mysql字符编码成为UTF82

    163、一般就算设置了表的默认字符集为utf8并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。解决方法是在发送查询前执行一下下面这句:

    mysql通过my.cnf修改默认字符集为utf-8的方法和注意事项

    配置文件路径: /full/path/mysql/bin/my.cnf (默认为/etc/my.cnf ) [client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] init_connect='SET collation_connection = utf8_...

    修改MySQL默认字符集编码

    本文将要为您介绍的是修改MySQL默认字符集编码,具体操作过程:  好记心不如烂笔头,很多东西当时没记下来,过了忘了,下次用到时又得浪费好多时间才能解决。又遇到修改MySQL默认字符集编码的问题,折腾了半天解决...

    如何修改mysql字符集

    安装完的MySQL的默认字符集为 latin1 ,为了要将其字符集改为用户所需要的(比如utf8),就必须改其相关的配置文件;由于linux下MySQL的默认安装目录分布在不同的文件下;不像windows一样放在同一目录下,只需修改其中...

    MySQL 5.1参考手册

    10.3. 确定默认字符集和校对 10.3.1. 服务器字符集和校对 10.3.2. 数据库字符集和校对 10.3.3. 表字符集和校对 10.3.4. 列字符集和校对 10.3.5. 字符集和校对分配示例 10.3.6. 连接字符集和校对 10.3.7. 字符串文字...

    MySQLDBA运维笔记.pdf

    mysql 总结........................................................................................................................................6 1.1 数据库的种类.......................................

    MySQL 5.1中文手冊

    10.3. 确定默认字符集和校对 10.3.1. 服务器字符集和校对 10.3.2. 数据库字符集和校对 10.3.3. 表字符集和校对 10.3.4. 列字符集和校对 10.3.5. 字符集和校对分配示例 10.3.6. 连接字符集和校对 10.3.7. 字符串文字...

    mysql设置默认字符集为utf8

    mysql5.7默认字符集是latin,更改为utf8就好了 一、配置mysql5.7默认字符集为utf8 第一步: 注意不是登陆mysql在里面输入,直接打开DOS输入即可 vim /etc/my.cnf 第二步:在文本最后一行加上 character_set_server=...

    MySQL 5.1参考手册 (中文版)

    10.3. 确定默认字符集和校对 10.3.1. 服务器字符集和校对 10.3.2. 数据库字符集和校对 10.3.3. 表字符集和校对 10.3.4. 列字符集和校对 10.3.5. 字符集和校对分配示例 10.3.6. 连接字符集和校对 10.3.7. 字符串文字...

    MySQL 5.1参考手册中文版

    10.3. 确定默认字符集和校对 10.3.1. 服务器字符集和校对 10.3.2. 数据库字符集和校对 10.3.3. 表字符集和校对 10.3.4. 列字符集和校对 10.3.5. 字符集和校对分配示例 10.3.6. 连接字符集和校对 10.3.7. 字符...

    MySQL 5.1官方简体中文参考手册

    10.3. 确定默认字符集和校对 10.3.1. 服务器字符集和校对 10.3.2. 数据库字符集和校对 10.3.3. 表字符集和校对 10.3.4. 列字符集和校对 10.3.5. 字符集和校对分配示例 10.3.6. 连接字符集和校对 10.3.7. 字符串文字...

    MYSQL中文手册

    10.3. 确定默认字符集和校对 10.3.1. 服务器字符集和校对 10.3.2. 数据库字符集和校对 10.3.3. 表字符集和校对 10.3.4. 列字符集和校对 10.3.5. 字符集和校对分配示例 10.3.6. 连接字符集和校对 10.3.7. 字符...

    MySQL字符集utf8修改为utf8mb4的方法步骤

    对于mysql 5.5 而言,如果不设定字符集,mysql默认的字符集是 latin1 拉丁文字符集; 但随着各种业务的进一步发展,除了各个国家的本身语言字符,经常也会有一些表情符号出现在应用程序中,而在mysql 5.5 之前,UTF-...

    mysql官方中文参考手册

    10.3. 确定默认字符集和校对 10.3.1. 服务器字符集和校对 10.3.2. 数据库字符集和校对 10.3.3. 表字符集和校对 10.3.4. 列字符集和校对 10.3.5. 字符集和校对分配示例 10.3.6. 连接字符集和校对 10.3.7. 字符串文字...

    MySQL5.1参考手册官方简体中文版

    10.3. 确定默认字符集和校对 10.3.1. 服务器字符集和校对 10.3.2. 数据库字符集和校对 10.3.3. 表字符集和校对 10.3.4. 列字符集和校对 10.3.5. 字符集和校对分配示例 10.3.6. 连接字符集和校对 10.3.7. 字符串文字...

Global site tag (gtag.js) - Google Analytics