(转)如何修改windows下mysql的字符集
原文:http://blog.csdn.net/yjz_sdau/article/details/52135050
(1) 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值,
如 default-character-set = utf8
character_set_server = utf8
修改完后,重启mysql的服务,service mysql restart
使用 mysql> SHOW VARIABLES LIKE 'character%';查看,发现数据库编码均已改成utf8

(2) 还有一种修改mysql默认字符集的方法,就是使用mysql的命令
1、修改数据库字符编码
mysql> alter database mydb character set utf8 ;
2、创建数据库时,指定数据库的字符编码
mysql> create database mydb character set utf8 ;
3、查看mysql数据库的字符编码
mysql> show variables like 'character%'; //查询当前mysql数据库的所有属性的字符编码
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
4、修改mysql数据库的字符编码
修改字符编码必须要修改mysql的配置文件my.cnf,然后重启才能生效
通常需要修改my.cnf的如下几个地方:
【client】下面,加上default-character-set=utf8,或者character_set_client=utf8
【mysqld】下面,加上character_set_server = utf8 ;
因为以上配置,mysql默认是latin1,如果仅仅是通过命令行客户端,mysql重启之后就不起作用了。
如下是客户端命令行修改方式,不推荐使用
mysql> set character_set_client=utf8 ;
mysql> set character_set_connection=utf8 ;
mysql> set character_set_database=utf8 ;
mysql> set character_set_database=utf8 ;
mysql> set character_set_results=utf8 ;
mysql> set character_set_server=utf8 ;
mysql> set character_set_system=utf8 ;
mysql> show variables like 'character%';
+--------------------------+----------------------------+
| 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)
http://m.blog.chinaunix.net/uid-20639775-id-154602.html
如果在应用开始阶段没有正确的设置字符集,在运行一段时间以后才发现 存在不能满足要求需要调整,
又不想丢弃这段时间的数据,那么就需要进行字符集的修改。 字符集的修改不能直接通过 alter
dataabase character set *** 或者 alter table tablename character set ***; 命令进行,这两个
命令都没有更新已有记录的字符集, 而只是对新创建的表或者记录生效。
已有的记录的字符集调整,需要先将数据导出,经过适当的调整重新导入后才可完成。
以下模拟的是将latin1字符集的数据库修改成GBK字符集的数据库的过程。
1> 导出表结构:
mysqldump -uroot -p --default-character-set=gbk -d databasename > createtab.sql
其中 --default-character-set=gbk 表示设置以什么字符集连接, -d 表示只导出表结构,不导出数
据。
2>手工修改 createtab.sql 中表结构定义中的字符集为新的字符集。
3>确保记录不再更新,导出所有记录。
mysqldump -uroot -p --quick --no-create-info --extended-insert --default-character-
set=latin1 databasename > data.sql
--quick: 该选项用于转储大的表。 它强制 mysqldump 从服务器一次一行地检索表中的行而不是 检
索所有行,并在输出前将它缓存到内存中。
--extended-insert: 使用包括几个 values 列表的多行insert语法,这样使转储文件更小,重载文件时
可以加速插入。
--no-create-info: 不写重新创建每个转储表的create table 语句。
--default-character-set=latin1: 按照原有的字符集导出所有数据,这样导出的文件中,所有中文都是
可见的,不会保存成乱码。
4>打开data.sql,将 set names latin1 修改成 set names gbk 。
5>使用新的字符集创建新的数据库。
create database databasename default charset gbk;
6>创建表,执行 createtab.sql
mysql -uroot -p databasename < createtab.sql
7>导入数据,执行data.sql
mysql -uroot -p databasename < data.sql
注意:选择字符集的时候,要注意最好是源字符的超级,或者确定比源字符集的字库更大,否则如果目标
字符集的字库小于源字符集的字库,那么目标字符集中不支持的字符倒入后会变成乱码,丢失一部分数据。 例如 GBK字符集的字库大于GB2312字符集,那么GBK字符集的数据,如果导入GB2312数据库中,就会丢失GB2312中不支持的那部分汉字的数据。
(转)如何修改windows下mysql的字符集的更多相关文章
- 修改windows下mysql的max_allowed_packet的值
执行sql报错:Error updating database. Cause: com.mysql.jdbc.PacketTooBigException: Packet for query is to ...
- Windows下MySQL数据目录修改
最近在弄一个项目,需要修改windows下面的mysql的数据目录(mysql默认是存储在C盘的,这个不太好,未来一定会满了的). 我的 mysql 是安装版,版本是 5.7. 1.首先,需要知道my ...
- 【已解决】Windows下 MySQL大小写敏感 解决方案及分析
Windows下 MySQL大小写敏感配置 zoerywzhou@163.com http://www.cnblogs.com/swje/ 作者:Zhouwan 2017-3-27 最近在window ...
- Windows 下 MySql 5.7.20安装及data和my.ini文件的配置(转)
Windows 下 MySql 5.7.20安装及data和my.ini文件的配置 本文通过图文并茂的形式给大家介绍了MySql 5.7.20安装及data和my.ini文件的配置方法. my ...
- Windows 下MySQL zip 安装
主要步骤: 1.下载解压到安装的文件夹 2.配置环境路径 3.配置my.ini文件,设置程序路径和数据存储路径 4.以管理员身份启动Mysqld install(提示sevice安装成功) 5.启动M ...
- coreseek实战(二):windows下mysql数据源部分配置说明
coreseek实战(二):windows下mysql数据源部分配置说明 关于coreseek在windows使用mysql数据源的配置,以及中文分词的详细说明,请参考官方文档: mysql数据源配置 ...
- Windows下mysql自动备份的最佳方案
网上有很多关于window下Mysql自动备份的方法,其实不乏一些不好的地方和问题,现总结出一个最好的方法供大家参考: 新建一个记事本,然后重命名为: mysql_backup.bat 然后单击右键选 ...
- Windows下mysql忘记密码的解决方法
Windows下mysql忘记密码的解决方法 mysql5.0 http://www.jb51.net/article/21984.htm方法一: 1.在DOS窗口下输入 net stop mysql ...
- Windows下MYSQL自动备份批处理
windows下MYSQL自动备份批处理 2011-05-04 09:16:45| 分类: mysql|举报|字号 订阅 按系统时间进行备份 注意mysql安装路径中如果有空格.就要把,.b ...
随机推荐
- Django入门与实践-第12章:复用模板(完结)
http://127.0.0.1:8000/http://127.0.0.1:8000/boards/1/http://127.0.0.1:8000/boards/2/http://127.0.0.1 ...
- 第七章 介词(La préposition )
法语中的介词是将两个同类或非同类的词连接在一起,把一个句中成分同另一个句子成分联系起来,并表明两者之间关系的词类.介词是一种无词性变化的词类. ★介词的形式 ()简单形式的介词,如: ()复合形式的介 ...
- java NIO编程(转)
一.概念 在传统的java网络编程中,都是在服务端创建一个ServerSocket,然后为每一个客户端单独创建一个线程Thread分别处理各自的请求,由于对于CPU而言,线程的开销是很大的,无限创建线 ...
- docker镜像基本操作
操作镜像 使用 docker 命令行操作 docker 镜像 获取镜像 使用「docker pull +镜像名称」从网络上下载image镜像 core@localhost ~ $ docker pul ...
- HDU1459 非常可乐(BFS) 2016-07-24 15:00 165人阅读 评论(0) 收藏
非常可乐 Problem Description 大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为.因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一瓶 ...
- 1. Two Sum [Array] [Easy]
Given an array of integers, return indices of the two numbers such that they add up to a specific ta ...
- linux系统编程之进程(六):父进程查询子进程的退出,wait,waitpid
本节目标: 僵进程 SIGCHLD wait waitpid 一,僵尸进程 当一个子进程先于父进程结束运行时,它与其父进程之间的关联还会保持到父进程也正常地结束运行,或者父进程调用了wait才告终止. ...
- Ruby on Rails 目录结构
目录结构 + app/ #控制器.模型.视图.帮助方法.邮件.静态资源 + bin/ #rails脚本 + config/ #路由.数据库等 + db/ #数据库模式.迁移文件 + lib/ #扩展模 ...
- 记录一下将SqlLocalDb数据迁移到Sql Server Express2017的过程!
当初为了开发方便,使用了SqlLocalDb,然后再测试期产生了很多有用的数据,客户说不能删除了.麻烦 先将数据库文件下载回来,然后安装SSMS,在连接数据库地址那里,填写“(LocalDB)\MSS ...
- Asp.net MVC4 记录在线用户数及登录时长
Global.asax.cs文件 public class MvcApplication : System.Web.HttpApplication { /// <summary> /// ...