mysql 默认字符集概述

首先,MySQL的字符集问题主要是两个概念:

  • haracter Sets
  • Collations

前者是字符内容及编码,后者是对前者进行比较操作的一些规则。这两个参数集可以在数据库实例单个数据库等四个级别指定。

对于使用者来说,一般推荐使用utf8编码来存储数据。而要解决乱码问题,不单单是MySQL数据的存储,还和用户程序文件的编码方式、用户程序和MySQL数据库的连接方式都有关系。

服务端

编译安装Mysql时可以指定默认字符集 -- 将编码问题扼杀在摇篮里

MySQL有默认的字符集,这个是安装的时候确定的,在编译MySQL的时候可以通过这两个参数来指定默认的字符集为utf8

在MySQL5.5版本中

DEFAULT_CHARSET=utf8
DEFAULT_COLLATION=utf8_general_ci

在mysql5.1版本中

--with-charset=utf8
--with-collation=utf8_general_ci

这样指定后,客户端连接到数据库的编码方式也默认是utf8了,应用程序不需要任何处理。

二进制安装后修改默认字符集 -- 补救行动

通过二进制程序的方式安装,那么这时候MySQL的默认字符集是latin1,可以修改my.cnf文件中参数,改变默认字符集。

首先,解决数据存储和比较的问题,但是对客户端的连接是没有作用的。

  1. 在[mysqld]下添加

    mysql 5.5 版本
character-set-server=utf8

mysql 5.1 版本

default-character-set=utf8
  1. [client]下添加
default-character-set=utf8

这样建数据库建表的时候的默认字符集就是utf8

客户端

客户端登录时需要设置这几个参数,但这三个参数是不能写在配置文件my.cnf里,只能通过set命令来动态修改

SET character_set_client = utf8
SET character_set_results = utf8
SET character_set_connection = utf8

init_connect命令在每个普通用户连接上来的时候都会触发执行,可以在[mysqld]部分增加以下一行设置连接字符集:

[mysqld]下添加:

init_connect = 'SET NAMES utf8'

但是要注意的是,这个命令对具有super权限的用户是不生效的。

mysql 更改默认字符集的更多相关文章

  1. 如何彻底解决MySQL更改默认字符集以及字符乱码问题!!!

    在我们使用MySQL数据库时,字符乱码,对我们来说是一个很头疼的问题.今天笔者就来教大家如何彻底解决更改默认字符集以及字符乱码问题. 当我们使用压缩包进行MySQL安装后,系统会使用默认的字符集,这时 ...

  2. MacOS中Mysql设置默认字符集

    一.查看字符集 mysql> show variables like 'character%'; +--------------------------+-------------------- ...

  3. 为 MySQL 设置默认字符集(UTF-8)避免产生乱码

    环境:Windows 7+Wamp Server+MySQL 5.7.9 查看MySQL默认编码: SHOW VARIABLES LIKE 'character%' character_set_cli ...

  4. MySQL修改默认字符集

    今天朋友在做某个程序项目时,需要修改MySQL修改默认字符集,搞不好找我帮忙.百度了试了好几篇博文中的方法,最后终于成功了.但是感觉那些博文思路有点乱,所以自己总结下,希望可以帮到遇到同样问题的人. ...

  5. mysql更改默认存储引擎

    在mysql的官网上看到在mysql5.5以上的版本中已经更改了默认的存储引擎,在5.5版本以前是Myisam以后是Innodb. InnoDB as the Default MySQL Storag ...

  6. mac下修改mysql的默认字符集为utf8

    1,检查默认安装的mysql的字符集 mysql> show variables like '%char%'; +--------------------------+------------- ...

  7. 【数据库】Mysql更改默认引擎为Innodb的步骤方法

    前言 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定. 基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持.M ...

  8. mysql 更改默认数据目录

    http://www.cnblogs.com/chenny7/p/3642363.html 本文主要介绍在CentOS下通过yum命令安装MySQL之后,如何移动默认数据目录到指定位置. 安装mysq ...

  9. 修改mysql的默认字符集

    \s 查看mysql的字符集 把server characterset和db characterset修改成utf8 在my.ini的mysqld下面添加两行代码,重启mysql [mysql] de ...

随机推荐

  1. 从阿里、腾讯的面试真题中总结了这11个Redis高频面试题

    前言 现在大家的工作生活基本已经是回归正轨了,最近也是迎来了跳槽面试季,有些人已经拿到了一两个offer了. 这段时间收集了阿里.腾讯.百度.京东.美团.字节跳动等公司的Java面试题,总结了Redi ...

  2. spring-cloud-gateway动态路由

    概述 线上项目发布一般有以下几种方案: 停机发布 蓝绿部署 滚动部署 灰度发布 停机发布 这种发布一般在夜里或者进行大版本升级的时候发布,因为需要停机,所以现在大家都在研究 Devops 方案. 蓝绿 ...

  3. Windows系统向Ubuntu传输文件

    PuTTY传输: 安装PuTTY,然后将PuTTY安装目录下的pscp.exe文件拷贝到/Windows/System32/目录下,在cmd控制台执行命令: # pscp 要传输的文件路径 ubunt ...

  4. 模块 configparser 配置文件生成修改

    此模块用于生成和修改常见配置文档 1.来看一个好多软件的常见配置文件格式如下***.ini [DEFAULT] ServerAliveInterval = 45 Compression = yes C ...

  5. 瀑布流vue-waterfall的高度设置

    最近用vue做项目,用到了瀑布流vue-waterfall,其中遇到高度的设置问题,大概介绍下,希望可以帮到一些人 1.安装 npm install --save vue-waterfall 2.引入 ...

  6. k8s删除namespace一直处于terminating状态

    k8s删除namespace一直处于terminating状态 当遇到删除ns是一直处于terminating情况可以用调k8s api进行删除. 1.创建api proxy. [root@node1 ...

  7. 发现钉钉打卡定位算法的一个bug

    最近公司取消了指纹打卡,改用钉钉打卡. 天天用这个打卡上班,经常忘记,困扰. 最烦的是好几次明明人在办公室,打卡地址显示在10分钟前的位置,定位失败,不得不重新打卡. 经历过几次定位失败后,我就琢磨起 ...

  8. Python学习笔记:迭代器(Iterator)详解

    一.可迭代的对象(Iterable) 1.定义:可以直接用在循环的数据类型,如list,tuple,dict,set,str,还有generator(生成器), 和带yield的函数,这些直接可以用在 ...

  9. JS中this指向问题和改变this指向

    首先必须要说的是,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象(这句话有些问题,后面会解释为什么会有问题,虽然 ...

  10. 51单片机内存条(64K)

    51单片机内存条扩展(64K) 设计时间:2015年 实现功能:51单片机SRAM扩展 51单片机64K内存条