zoukankan      html  css  js  c++  java
  • MYSQL创建数据库时候直接指定编码和排序规则

    安装我 在网上搜索的结果
    执行
    代码:
    sudo gedit /etc/mysql/my.cnf

    设置了默认编码为 UTF8
    代码:
    [client]
    port            = 3306
    socket            = /var/run/mysqld/mysqld.sock
    #默认字符集为utf8
    default-character-set = utf8


    代码:
    [mysqld]
    #
    # * Basic Settings
    #
    # 默认字符集为utf8
    default-character-set = utf8

    重启MySql

    但是我用 执行
    代码:
    show variables like 'character%';

    结果
    代码:
    +--------------------------+----------------------------+
    | Variable_name            | Value                      |
    +--------------------------+----------------------------+
    | character_set_client     | utf8                       |
    | character_set_connection | utf8                       |
    | character_set_database   | latin1                     |
    | character_set_filesystem | binary                     |
    | character_set_results    | utf8                       |
    | character_set_server     | utf8                       |
    | character_set_system     | utf8                       |
    | character_sets_dir       | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+


    其中
    代码:
    | character_set_database | latin1                     |

    为什么没有变化

    而且java无法插入中文 java中已经将中文用utf8转码

    在mysql中默认字符集是latin1,
    想要设置字符集为uft-8,可以在 my.cnf 文件中添加以下设置:
    ·[client]
    default-character-set=utf8
    ·[mysqld]
    default-character-set=utf8
    skip-character-set-client-handshake
    #此处是忽略客户端的字符集,使用服务器的设置
    (skip语句和client中的default选一个)
    当然你可以在建立数据库是规定字符集:
    create database db_name default character set utf8 callate utf8-general-ci;
    也可以在链接数据库前设置:set names 'utf8';

    重点在红字上,加了skip-character-set-client-handshake,client里面就不用加default了
    show variables like 'characte%';
    +--------------------------+----------------------------+
    | 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/ |
    +--------------------------+----------------------------+

    _________________
    笔记
    -------------------------------------
    http://blog.163.com/wqt_1101


    mysql 创建 数据库时指定编码很重要,很多开发者都使用了默认编码,但是我使用的经验来看,制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题。

    我们遵循的标准是,数据库,表,字段和页面或文本的编码要统一起来
    很多mysql数据库工具(除了phpmyadmin,我偶尔用,功能强速度慢)都不支持创建时指定数据库编码,当然可以改my.ini来解决这个问题,但是需要重新启动mysql,不过用下面的语句会更有效

    GBK: create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

    UTF8: CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

    注意:如果不是通过my.ini配置文件设置的内容,只在当前状态下有效,当重启数据库服务后失效。所以如果想要不出现乱码只有修改my.ini文件,数据库编码可以在创建数据库时候指定UTF8,如下:
    |character_set_client      | utf8                                  |
    | character_set_connection | utf8                                  |
    | character_set_database   | utf8                                  |
    | character_set_filesystem | binary                                |
    | character_set_results    | utf8                                  |
    | character_set_server     | latin1                                |
    | character_set_system     | utf8          

    注意该配置| character_set_server     | latin1 无法设置成UTF8
    交互时候仍然会出现乱码。

    只有当修改my.ini中设置UTF8,才会全部修改成UTF8

    -------------------------
    mysql设置编码命令

    SET character_set_client = utf8;
    SET character_set_connection = utf8;
    SET character_set_database = utf8;
    SET character_set_results = utf8;/*这里要注意很有用*/
    SET character_set_server = utf8;

    SET collation_connection = utf8_bin;
    SET collation_database = utf8_bin;
    SET collation_server = utf8_bin;

    my.ini中配置默认编码
    default-character-set=utf8

    连接数据库设置编码
    jdbc:mysql://192.168.0.5:3306/test?characterEncoding=utf8

    /*****************************************java与mysq编码对应****************************************/
    java中的常用编码UTF-8;GBK;GB2312;ISO-8859-1;
    对应mysql数据库中的编码utf8;gbk;gb2312;latin1



    ---------------------------
    数据库连接串中指定字符集URL=jdbc:mysql://yourIP/college?user=root&password=yourPassword&useUnicode=true&characterEncoding=gbk

    转载地址:
    http://forum.ubuntu.org.cn/viewtopic.php?t=204749

    http://tdcq.iteye.com/blog/363955

  • 相关阅读:
    FEniCS 1.1.0 发布,计算算术模型
    Piwik 1.10 发布,增加社交网站统计
    淘宝褚霸谈做技术的心态
    CyanogenMod 10.1 M1 发布
    Druid 发布 0.2.11 版本,数据库连接池
    GNU Gatekeeper 3.2 发布
    Phalcon 0.9.0 BETA版本发布,新增大量功能
    EUGene 2.6.1 发布,UML 模型操作工具
    CVSps 3.10 发布,CVS 资料库更改收集
    Opera 移动版将采用 WebKit 引擎
  • 原文地址:https://www.cnblogs.com/jpfss/p/6592633.html
Copyright © 2011-2022 走看看