zoukankan      html  css  js  c++  java
  • MySQL字符集问题

    初始化文件

    首先,MySQL的字符集问题主要是两个概念,一个是Character Sets,一个是Collations,前者是字符内容及编码,后者是对前者进行比较操作的一些规则。这两个参数集可以在数据库实例、单个数据库、表、列等四个级别指定。对于使用者来说,一般推荐使用utf8编码来存储数据。而要解决乱码问题,不单单是MySQL数据的存储问题,还和用户的程序文件的编码方式、用户程序和MySQL数据库的连接方式都有关系。

    在MySQL5.5版本下,在my.cnf (my.ini)中指定数据库端字符集为UTF8,其中init_connect参数的作用是给每个普通用户的连接自动设置字符集(但是要注意的是,这个命令对具有super权限的用户是不生效的)。

    [client]
    # 修改客户端默认字符编码格式为utf8

    default-character-set = utf8

    [mysqld]
    # 修改服务器端默认字符编码格式为utf8

    character-set-server = utf8
    # 在每个普通用户连接上来的时候都会触发执行
    init_connect = 'SET NAMES GBK'

    在客户端中查看配置生效
    mysql> show variables like '%char%';
    +--------------------------+--------------------------+
    | 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       | d:\MySQL\share\charsets\ |
    +--------------------------+--------------------------+

    ODBC 和 MySQL
    通过ODBC连接MySQL的应用,比如Power Designer, 需要在ODBC的配置当中手工指定 init statement 的值为 set names gbk,这样才可以正确使用中文。


    大小写敏感

    默认LINUX下,MySQL的表名称是大小写敏感的。可以修改my.cnf进行配置

    [mysqld]
    # 0是敏感,1是不敏感

    lower_case_table_names = 1


    默认字符串的比较是大小写不敏感的,可以通过字段类型增加binary关键字进行指定。也可以在SQL语句中用binary()函数或者binary关键字

    create table t(x varchar(1) binary);

    也可以在SQL语句中用binary()函数或者binary关键字

    select * from t where x = binary('A');

    select * from t where binary x = 'A';

  • 相关阅读:
    解决:Cuda安装后找不到安装文件目录
    学习论文:Eyeriss v1
    AOD-NET除雾算法
    学习论文AOD-Net:All-in-One Dehazing Network
    学习ResNeXt
    CentOS-7.6-ARM 离线安装部署FastDFS
    CentOS ARM离线安装部署Mysql5.6.44
    NFS+SnapShot快照式备份迁移ES索引过程
    《无限可能:快速唤醒你的学习脑》
    Oracle用sqlplus无法登陆?
  • 原文地址:https://www.cnblogs.com/wait4friend/p/2334560.html
Copyright © 2011-2022 走看看