zoukankan      html  css  js  c++  java
  • mysql 更改默认字符集

    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权限的用户是不生效的。

  • 相关阅读:
    初学 python 之 多级菜单实现原理
    初学 python 之 用户登录实现过程
    Sqlmap使用教程
    对伪静态网站实施注射
    干货!IT小伙伴们实用的网站及工具大集合!持续更新!
    lnmp、lamp、lnmpa一键安装包(Updated: 2016-4-12)
    如何入门 Python 爬虫?
    在Windows Live Writer中插入C# code
    IIS装好后,局域网不能访问
    修改win7登录界面
  • 原文地址:https://www.cnblogs.com/hiyang/p/12631769.html
Copyright © 2011-2022 走看看