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. 10年阿里自动化测试架构师帮您收集的:git常用命令大全以及git原理图【泣血推荐,建议收藏】

    一.Git分布式版本控制简介 ​ Git 是一个很强大的分布式版本控制系统.它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势.本来想着只把最有用.最常用的 Git 命令记下来, ...

  2. STM32F103ZET6窗口看门狗

    1.WWDG简介 窗口看门狗(WWDG)通常被用来检测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障. WWDG是一个不断往下递减的计数器.当WWDG的计数器递减到固定 ...

  3. Shell:homework

    1.判断/etc/inittab文件是否大于100行,如果大于,则显示”/etc/inittab is a big file.”否则显示”/etc/inittab is a small file.”# ...

  4. spring中BeanPostProcessor之二:CommonAnnotationBeanPostProcessor(01)

    在上篇博客中分享了InstantiationAwareBeanPostProcessor接口中的四个方法,分别对其进行了详细的介绍,在文末留下了一个问题,那就是postProcessPropertie ...

  5. 【Linux】Linux(一)Linux常用命令

    一 命令行提示符 1.[root@localhost ~]# 当前登录用户@主机名:当前所在目录$ # 超级用户 $  普通用户 当前所在目录:~ 用户家目录 管理员 /root 普通用户 /home ...

  6. 搭建 sqli SQL注入练习靶场

    文章更新于:2020-02-18 按照惯例,需要的文件附上链接放在文首 文件名:sqli-labs-master.zip 文件大小:3.5 M 下载链接:https://www.lanzous.com ...

  7. javascript 入门 之 bootstrap/bootstrap-table 安装方法

    也和select2一样,可以有三种方法 1.远程调用CDN 2.用bower安装 3.下载 时间原因,暂时先讲第二种,其余两种,以后完善 1.进入根目录,执行bower install bootstr ...

  8. 关于redis单线程的分析

    redis为什么那么快?结论有三点,大家都知道,这里主要是分析. 首先第一点 redis是内存访问的,所以快 当然这个大家都知道,所以不是重点 io密集型和cpu密集型 一般我们把任务分为io密集型和 ...

  9. Struts2-学习笔记系列(13)-类型转换异常和校验器

    Struts2框架有默认的类型转换错误拦截机制,该配置在struts-default.xml中,名叫conversionError,但是想使用需要继承ActionSupport. 默认的错误提示信息是 ...

  10. Linux 下普通用户切换root超级管理员用户的几种方法

    1.在命令行下输入:sudo su ,之后会提示你输入密码 2.此时输入你之前设定的密码既可: 3.但有时会提示你该普通用户不在sudoers文件里 4.此时可以使用以下命令来切换root用户权限:s ...