MySQL数据库8(六)字符集

字符集

字符编码概念

字符(character)是各种文字和符号的总称,包括各国家文字、标识符号、图形符号、数字等。

在计算机中所看到的任何内容都是字符构成的。

字符编码(character code)是计算机针对各种符号,在计算机中的一种二进制存储代号。

字符集概念

字符集(character set)是多个字符的集合,字符集种类比较多,每个字符集包含的字符个数不同。

常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、GB18030字符集、Unicode字符集等。

简体中文         繁体中文

MySQL字符集设置

设置客户端所有字符集

如果直接通过cmd下的mysql.exe进行中文数据插入,那么可能会出错。

出错原因:

1、用户是通过mysql.exe来操作mysqld.exe

2、真正的SQL执行时mysqld.exe来执行

3、mysql.exe将数据传入mysqld.exe的时候,没有告知其对应的符号规则(字符集),而mysqld也没有能力自己判断,就会使用自己默认的(字符集)

解决方案:mysql.exe客户端在进行数据操作之前将自己使用的字符集告诉mysqld,cmd下mysql.exe默认的只有一个字符集:GBK。

mysql.exe如何告知mysqld.exe对应的字符集类型为gbk?

快捷方式:set names 字符集;

深层原理:客户端,服务端,连接层(show variables like ‘character_set%’)

mysql.exe 与mysqld.exe之间的处理关系一共分为三层:

客户端传入数据给服务端:client : character_set_client

服务端返回数据给客户端:server : character_set_results

客户端与服务端之间的连接:connection : character_set_connection

set names 字符集 的本质:就是一次打通三层关系的字符集,变得一致。

在系统中有三个变量来记录着这三个关系对应的字符集:show variables like ‘character_set%’;

查看一个新的客户端对应的字符集关系

修改服务器端变量的值:

set 变量名 = 值;

set character_set_client = gbk;

重新进行数据插入和查看的结果:插入OK,但是查看乱码。

修改结果字符集为gbk

connection只是为了更方便客户端与服务端进行字符集转换而设。

set names gbk:

set character_set_client = gbk; //为了让服务端识别客户端传来的数据

set character_set_connection = gbk; //更好的帮助客户端与服务端之间进行字符集转换

set character_set_results = gbk; //为了告诉客户端服务端所有的返回的数据字符集

原文地址:https://www.cnblogs.com/sun-yanglu/p/9581592.html

时间: 2024-10-18 14:45:28

MySQL数据库8(六)字符集的相关文章

修改MYSQL数据库表的字符集

MySQL 乱码的根源是的 MySQL 字符集设置不当的问题,本文汇总了有关查看 MySQL 字符集的命令.包括查看 MySQL 数据库服务器字符集.查看 MySQL 数据库字符集,以及数据表和字段的字符集.当前安装的 MySQL 所支持的字符集等. 一.查看 MySQL 数据库服务器和数据库字符集. mysql> show variables like '%char%';+--------------------------+----------------------------------

MySQL数据库(六)—— 事务

一.事务的基本特征 1. 概念:如果一个包含多个步骤的业务操作,被事务管理,这些操作要么同时成功,要么同时失败. 事务执行是一个整体,所有的SQL语句都必须执行成功.如果其中有一条SQL语句出现异常,则所有的SQL语句都要回滚,整个业务执行失败. 2. 操作: (1) 开启事务:start transaction (2) 回滚:rollback (3) 提交:commit 3.MySQL数据库中事务默认自动提交 事务提交的两种方式: 第一种方式:自动提交 MySQL就是自动提交的. 一条DML语

mysql数据库 详解 之 自学成才1

一.学习目录 1.认识数据库和mysql 2.mysql连接 3.入门语句 4.详解列类型 5.增删改查 INSERT INTO  表名(列1,--  列n)  VALUES(值 1,--  值 n); *(列1,--  列n)允许不写,如果不写,则默认插入所有列 INSERT INTO  表名  VALUES(值 1,--  值 n); *VALUES 对应的值的输入顺序与表中字段顺序一致 改: update 表名 set 列1 = 新值1, 列2 = 新值2, where expr *改哪张

mysql数据库中文乱码的一点小技巧

查询数据库中的所使用的字符集 SHOW VARIABLES LIKE 'CHARACTER%' 设置数据库的字符编码集 URL=jdbc:mysql://127.0.0.1:3306/user?characterEncoding=utf8 今天添加数据到数据库,刚好就碰到了中文乱码,将eclipse里面的默认字符集和mysql数据库里面的字符集都改成了utf8,部署运行后还是不行. 后来在网上搜了一下,刚好看到了上面的这个方法, 在数据库连接池的配置文件中改了一下URL的地址,然后就好了.

MySql数据库输入数据乱码问题

1.首先检查从前端界面传进来的值是否是乱码 2.查看Mysql数据库中的字符集 2.1 cmd 进入MySql安装目录:D:\Program Files\MySQL\MySQL Server 5.5\bin 2.2 进入数据库:mysql -u root -proot 2.3 查看数据库编码格式: show variables like '%character%'; 2.4 会出现以下界面: 3.如图所示:如果编码格式不为utf8或者跟页面字符格式不同. 找到数据库安装目录中的 my.ini 配

cmake安装MySQL数据库实例

一.编译安装MySQL前的准备工作 首先检查是否有安装其他版本的编译器和数据库,先卸载干净. 安装编译源码所需的工具和库 yum install gcc gcc-c++ ncurses-devel perl 安装cmake,从http://www.cmake.org下载源码并编译安装 wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz tar -xzvf cmake-2.8.10.2.tar.gz cd cmake-2.8.10.

centos mysql 实战 第六节课 字符集

centos mysql 实战 第六节课    字符集 一定要研究清楚mysql安装脚本 字符集 乱码数据迁移1. 理解字符集怎么会事2. 不同的字符集进行转换 什么是字符集gbk , utf8 gb2312 latin1 一套符号编码规则 字符串都必须有相应的字符集,除了二进制没有字符集 校验字符集的概念流式传输 多字节latin1 单字节gbk 2字节utf8 3字节校验字符集的概念, 字为单位归类的方法,就是3类xxx_bin 以二进制形式存储区分大小写 SHOW CHARACTER SE

修改及查看mysql数据库的字符集

修改及查看mysql数据库的字符集 Liunx下修改MySQL字符集:1.查找MySQL的cnf文件的位置find / -iname '*.cnf' -print /usr/share/mysql/my-innodb-heavy-4G.cnf/usr/share/mysql/my-large.cnf/usr/share/mysql/my-small.cnf/usr/share/mysql/my-medium.cnf/usr/share/mysql/my-huge.cnf/usr/share/te

修改mysql数据库字符集为UTF8的

第一种 一.修改my.ini配置文件(MySQL配置文件) character_set_server = utf8 #设置字符集 重启mysql数据库服务 查看当前数据库字符集 show VARIABLES like 'character%'; 二.修改数据库字符集 alter database 数据库名 character set utf8; ps:修改完数据库字符集,需要重启MySQL数据库. 三.修改表字符集 ALTER TABLE  表名 DEFAULT CHARACTER SET ut

JDBC 和 Mybatis连接mysql数据库的时候,设置字符集编码

jdbc连接MySQL数据库的时候,设置字符集编码!!! 可以如下配置,mysql可直接在url后面加上字符集设置: String url = "jdbc:mysql://localhost:3306/exceltest1?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull"; Mybatis连接mysql数据库的时候,设置字符集编码!!! 可以如下配置,Mybatis的配