my.cnf

[mysql]

default-character-set = gbk

[mysqld]

skip-character-set-client-handshake=1   跳过mysql程序起动时的字符参数设置 ,使用服务器端字符集设置

修改不过来

[root@localhost ~]# mysql -uroot -p --default-character-set=latin1
Enter password:
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 | /usr/local/mysql56/share/charsets/ |
+--------------------------+------------------------------------+
8 rows in set (0.01 sec) mysql> set names latin1 ; //进入环境中才可以设置 Query OK, 0 rows affected (0.00 sec) mysql> show variables like "%char%";
+--------------------------+------------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql56/share/charsets/ |
+--------------------------+------------------------------------+
8 rows in set (0.01 sec)
[my.cnf]

[mysql]
default-character-set = gbk [mysqld]
character-set-client-handshake = 0
[root@localhost ~]# mysql -uroot -p --default-character-set=latin1
Enter password: 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 | /usr/local/mysql56/share/charsets/ |
+--------------------------+------------------------------------+
8 rows in set (0.01 sec) mysql> set names gbk;
Query OK, 0 rows affected (0.00 sec) mysql> show variables like "%char%";
+--------------------------+------------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql56/share/charsets/ |
+--------------------------+------------------------------------+
8 rows in set (0.18 sec)
[mysqld]

character-set-server = gbk
skip-character-set-client-handshake=1 //使用服务端字符集

[root@localhost ~]# mysql -uroot -p --default-character-set=latin1
Enter password: mysql> show variables like "%char%";
+--------------------------+------------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | gbk |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | gbk |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql56/share/charsets/ |
+--------------------------+------------------------------------+
8 rows in set (0.02 sec)
[mysqld]

character-set-server = gbk
character-set-client-handshake=0 //使用服务端字符集

[root@localhost ~]# mysql -uroot -p --default-character-set=latin1
Enter password: mysql> show variables like "%char%";
+--------------------------+------------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | gbk |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | gbk |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql56/share/charsets/ |
+--------------------------+------------------------------------+
8 rows in set (0.02 sec)
[mysqld]
character-set-server = gbk
character-set-client-handshake = 1
[root@localhost ~]# mysql -uroot -p --default-character-set=latin1
Enter password: mysql> show variables like "%char%";
+--------------------------+------------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | gbk |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | gbk |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql56/share/charsets/ |
+--------------------------+------------------------------------+
8 rows in set (0.02 sec)

mysql 字符集非交互设置:当mysql起动连到mysqld时,非手动命令

mysql字符集交互设置:通过命令行手动设置

MySQL 5.5版本解决中文乱码问题时my.ini内

[mysqld]项中不能再写default-character-set=utf8

 

来看看如何解决乱码问题:

在mysql中默认字符集是latin1,

想要设置字符集为uft-8,可以在 my.cnf 文件中添加以下设置:

·[client]

1 default-character-set=utf8

·[mysqld]

1 default-character-set=utf8
2 skip-character-set-client-handshake #此处是忽略客户端的字符集,使用服务器的设置

(skip语句和client中的default选一个)

当然你可以在建立数据库是规定字符集:

1 create database db_name default character set utf8 callate utf8-general-ci;

也可以在链接数据库前设置:

1 set names 'utf8'

重点在红字上,加了skip-character-set-client-handshake,client里面就不用加default了

01 show variables like 'characte%';
02 +--------------------------+----------------------------+
03 | Variable_name | Value |
04 +--------------------------+----------------------------+
05 | character_set_client | utf8 |
06 | character_set_connection | utf8 |
07 | character_set_database | utf8 |
08 | character_set_filesystem | binary |
09 | character_set_results | utf8 |
10 | character_set_server | utf8 |
11 | character_set_system | utf8 |
12 | character_sets_dir | /usr/share/mysql/charsets/ |
13 +--------------------------+----------------------------+

但是根据以上的配置过了后,mysql就无法启动了,这是为什么呢?往下看:

在5.1版本时,为了解决中文乱码问题设置默认字符集为utf8时,在my.ini内的 [mysql] 和 [mysqld] 项中都是写:

1 default-character-set=utf8

到了5.5版本, [mysql] 项内可以这么写, [mysqld] 项内这么写在启动MySQL服务时会有1067错误,经查询发现这里必须要这样写:

1 character-set-server=utf8

目前已知5.1和5.5有这么一个不同之处,且是从5.5的安装版本自动生成的my.ini文件中看出的。配置免安装的5.5版本还需要进一步的实验。

skip-character-set-client-handshake 与 character-set-client-handshake的更多相关文章

  1. elasticsearch系列七:ES Java客户端-Elasticsearch Java client(ES Client 简介、Java REST Client、Java Client、Spring Data Elasticsearch)

    一.ES Client 简介 1. ES是一个服务,采用C/S结构 2. 回顾 ES的架构 3. ES支持的客户端连接方式 3.1 REST API ,端口 9200 这种连接方式对应于架构图中的RE ...

  2. docker报Error response from daemon: client is newer than server (client API version: 1.24, server API version: 1.19)

    docker version Client: Version: 17.05.0-ce API version: 1.24 (downgraded from 1.29) Go version: go1. ...

  3. Elasticsearch Java client(ES Client 简介、Java REST Client、Java Client、Spring Data Elasticsearch)

    elasticsearch系列七:ES Java客户端-Elasticsearch Java client(ES Client 简介.Java REST Client.Java Client.Spri ...

  4. 启动PL/SQL Developer 报字符编码不一致错误 Database character set (AL32UTF8) and Client character set (ZHS16GBK) are different. Character set conversion may cause unexpected results. Note: you can set the client

    今天写hibernate时候遇到一些异常 代码: 出现异常情况: 出现以上原因是Session关闭 如果不是使用的SessionFactory.getSession()来获得Session. 而是使用 ...

  5. ecshop /api/client/api.php、/api/client/includes/lib_api.php SQL Injection Vul

    catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 ECShop存在一个盲注漏洞,问题存在于/api/client/api. ...

  6. ORACLE等待事件:SQL*Net message from client & SQL*Net message to client

    在ORACLE当中有两个很常见的等待事件"SQL*Net message from client"与"SQL*Net message to client",两者 ...

  7. Docker Client (another java docker client api)

    前一篇提到了docker-java,这里介绍另一个docker client 库,Docker Client 版本兼容 兼容17.03.1~ce - 17.12.1~ce (点 [here][1]查看 ...

  8. PL/SQL错误提示 database character set(AL32UTF8) and Client character set(ZHS16GBK) are different

    PL/SQL database character set(AL32UTF8) and Client character set(ZHS16GBK) are different 这是由于安装oracl ...

  9. PL/SQL database character set(AL32UTF8) and Client character set(ZHS16GBK) are different 2012-04-11 13:01

    启动PL/SQL Developer 报字符编码不一致错误 Database character set (AL32UTF8) and Client character set (ZHS16GBK) ...

  10. PL/SQL database character set(AL32UTF8) and Client character set(ZHS16GBK) are different

    启动PL/SQL Developer 报字符编码不一致错误 Database character set (AL32UTF8) and Client character set (ZHS16GBK) ...

随机推荐

  1. tyvj1161聚会的名单(trie树)

    背景 Background 明天就是candy的生日,candy又会邀请自己的一大堆好友来聚会了!哎!又要累坏飘飘乎居士了!! 描述 Description     明天就是candy的生日.晚上,c ...

  2. SGU 438 The Glorious Karlutka River =) ★(动态+分层网络流)

    [题意]有一条东西向流淌的河,宽为W,河中有N块石头,每块石头的坐标(Xi, Yi)和最大承受人数Ci已知.现在有M个游客在河的南岸,他们想穿越这条河流,但是每个人每次最远只能跳D米,每跳一次耗时1秒 ...

  3. CSS预处理器Sass(Scss)、Less、Stylus

    CSS 预处理编译器能让我成程序化其的方式编写CSS代码,可以引入CSS中没有的变量.条件.函数等特性,从而让代码更简单易维护,但一般按预处理器语法编写的代码无法直接在浏览器中运行,需用通过工具比如g ...

  4. Collection Of SVM Libraries By Language via datasciencecentral

    http://www.datasciencecentral.com/profiles/blogs/collection-of-svm-libraries-by-language Support vec ...

  5. Ajax异步请求-简单模版

    <script type="text/javascript"> window.onload = function () { document.getElementByI ...

  6. as3 工具类分享 CookieMgr

    今天分享一个工具类 CookieMgr,功能就是读取和写入 SharedObject 对象.很简单,都是静态方法,就不多说了 package org.polarbear.core { import f ...

  7. PDF/WORD/EXCEL 图片预览

    一.PDF/WORD/EXCEL 转 XPS 转 第一页内容 转 图片 WORD.EXCEL转XPS (Office2010) public bool WordToXPS(string sourceP ...

  8. CodeForces 149D Coloring Brackets 区间DP

    http://codeforces.com/problemset/problem/149/D 题意: 给一个给定括号序列,给该括号上色,上色有三个要求 1.只有三种上色方案,不上色,上红色,上蓝色 2 ...

  9. 【恒天云】OpenStack和CloudStack对比研究报告

    摘自恒天云:http://www.hengtianyun.com/download-show-id-8.html 1. 概述 常见的IaaS开源平台有OpenStack.CloudStack.Euca ...

  10. HW7.5

    import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...