iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL 学习之-字符集选定,修改
  • 327
分享到

MySQL 学习之-字符集选定,修改

2024-04-02 19:04:59 327人浏览 独家记忆
摘要

基础概念: 字符(Character)是指人类语言中最小的表义符号。例如’A'、’B'等; 编码(Encoding)是指给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符.例如,我们给字

基础概念:


字符(Character)是指人类语言中最小的表义符号。例如’A'、’B'等;
编码(Encoding)是指给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符.例如,我们给字符’A'赋予数值0,给字符’B'赋予数值1,则0就是字符’A'的编码;
字符集(Character Set)是指字符和编码对组成的集合
字符序(Collation)是指在同一字符集内字符之间的比较规则。
Mysql中的字符序名称遵从命名惯例:以字符序对应的字符集名称开头;以_ci(表示大小写不敏感)、_cs(表示大小写敏感)或_bin(表示按编码值比较)结尾。例如:在字符序“utf8_general_ci”下,字符“a”和“A”是等价的;


  
mysql> show variables like 'character%';   --查看Mysql字符集设置  MySQL字符集设置
+--------------------------+----------------------------+
| Variable_name            | Value                      |     ? 系统变量:
+--------------------------+----------------------------+
| character_set_client     | utf8                       |     – character_set_client:客户端来源数据使用的字符集      
| character_set_connection | utf8                       |     – character_set_connection:连接层字符集
| character_set_database   | latin1                     |     – character_set_database:当前选中数据库的默认字符集
| character_set_filesystem | binary                     |     – character_set_filesystem:文件系统字符集
| character_set_results    | utf8                       |     – character_set_results:查询结果字符集
| character_set_server     | latin1                     |     – character_set_server:内部操作字符集(服务器的字符集)
| character_set_system     | utf8                       |     – character_set_system:系统元数据(字段名等)字符集
| character_sets_dir       | /usr/share/mysql/charsets/ | 
+--------------------------+----------------------------+
8 rows in set (0.00 sec)


详细解释:
1. 
服务器(数据)端的字符集和collation,可以分成四级逐层指定——server, database, table, column。当MySQL存取位于某一列(column)的数据时,如果column的字符集和collation没有指定,就会向上追溯table的;如果table也没有指定字符集和collation,就以database的字符集和collation作为默认值;如果database仍旧没有指定,那么就以服务器的字符集和collation作为默认值。


2.
server的字符集和collation的默认值又是从哪里来的呢?答案是,配置文件(my.ini)和mysqld(或者mysqld-nt)的命令行参数中都可以指定。如果不幸的,你根本没有在my.ini或者命令行中指定,那么MySQL就会使用编译MySQL时指定的默认字符集——latin1。


3.
数据字符集转换过程:
character_set_client->character_set_connection->character_set_(column,table,database,server)->character_set_results






MySQL默认字符集
MySQL对于字符集的指定可以细化到一个数据库,一张表,一列.传统的程序在创建数据库和数据表时并没有使用那么复杂的配置,它们用的是默认的配置.
    (1)编译MySQL 时,指定了一个默认的字符集,这个字符集是 latin1;
    (2)安装MySQL 时,可以在配置文件 (my.ini) 中指定一个默认的的字符集,如果没指定,这个值继承自编译时指定的;
    (3)启动mysqld 时,可以在命令行参数中指定一个默认的的字符集,如果没指定,这个值继承自配置文件中的配置,此时 character_set_server 被设定为这个默认的字符集;
    (4)安装 MySQL选择多语言支持,安装程序会自动在配置文件中把default_character_set 设置为 UTF-8,保证缺省情况下所有的数据库所有表的所有列的都用 UTF-8 存储。




mysql> create database demo;       --创建数据库未指定字符集,使用默认字符集创建数据库
Query OK, 1 row affected (0.00 sec)


mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| infORMation_schema |
| demo               |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)


mysql> show create database demo \G;       --查看创建数据库时使用的什么字符集。
*************************** 1. row ***************************
       Database: demo
Create Database: CREATE DATABASE `demo`
1 row in set (0.00 sec)


ERROR: 
No query specified


mysql> create database demo default character set gbk collate gbk_chinese_ci;  --指定字符集创建数据库
Query OK, 1 row affected (0.00 sec)
mysql> show create database demo;
+----------+--------------------------------------------------------------+
| Database | Create Database                                              |
+----------+--------------------------------------------------------------+
| demo     | CREATE DATABASE `demo` |
+----------+--------------------------------------------------------------+
1 row in set (0.00 sec)


mysql> create database demo2 default character set utf8 collate utf8_general_ci; --指定字符集创建数据库
Query OK, 1 row affected (0.00 sec)


修改字符集 :
 
方法一:(永久生效)
1.查找/etc目录下是否有my.cnf文件;
#ls -l | grep my.cnf (在/etc下查找是否有my.cnf文件存在)
2.如果没有就要从/usr/share/mysql,拷贝一个到/etc 下,在/usr/share/mysql目录下有五个后缀为.cnf的文件,分别是 my-huge.cnf    my-innodb-heavy-4G.cnf    my-large.cnf   my-medium.cnf     my-small.cnf ;从中随便拷贝一个到/etc目录下并将其改为my.cnf文件,我选择的是my-medium.cnf :
#cp /usr/share/mysql/my-medium.cnf   /etc/my.cnf
3.修改my.cnf文件,在该文件中的两个地方加上 default-character-set=utf8([client]  [mysql])、
在 [mysqld] 中添加character-set-server=utf8

范例(红色为添加部分):

[mysqld]

character-set-server=utf8
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysql]
default-character-set=utf8
[client]
default-character-set=utf8

 

验证:查看数据库字符集

mysql> show variables like 'character%';
+--------------------------+----------------------------+
| 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/ |
+--------------------------+----------------------------+
成功!


方法二: (临时生效)
通过MySQL命令行修改:


mysql> set character_set_client=utf8;


Query OK, 0 rows affected (0.00 sec)


mysql> set character_set_connection=utf8;


Query OK, 0 rows affected (0.00 sec)


mysql> set character_set_database=utf8;


Query OK, 0 rows affected (0.00 sec)


mysql> set character_set_results=utf8;


Query OK, 0 rows affected (0.00 sec)


mysql> set character_set_server=utf8;


Query OK, 0 rows affected (0.00 sec)


mysql> set character_set_system=utf8;


Query OK, 0 rows affected (0.01 sec)


mysql> set collation_connection=utf8;


Query OK, 0 rows affected (0.01 sec)


mysql> set collation_database=utf8;


Query OK, 0 rows affected (0.01 sec)


mysql> set collation_server=utf8;


Query OK, 0 rows affected (0.01 sec)




总结
1. 如果安装mysql时未指定数据库字符集,则默认数据库字符集为 latin1 。 
2. 选定数据库字符集时需要根据开发程序选定字符集。

 

您可能感兴趣的文档:

--结束END--

本文标题: MySQL 学习之-字符集选定,修改

本文链接: https://www.lsjlt.com/news/50065.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql学习之-字符集选定,修改。
    环境:5.6 基础概念: 字符(Character)是指人类语言中最小的表义符号。例如’A'、’B'等; 编码(Encoding)是指给定一系列字符,对每个字符赋予一个数值,用数值来代表对应...
    99+
    2024-04-02
  • MySQL 学习之-字符集选定,修改
    基础概念: 字符(Character)是指人类语言中最小的表义符号。例如’A'、’B'等; 编码(Encoding)是指给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符.例如,我们给字...
    99+
    2024-04-02
  • MySQL基础学习之字符集的应用
    目录字符集的查询与修改字符集比较规则utf8mb3和 utf8mb4比较规则后缀含义字符集常用SQL字符集的查询与修改 在mysql 8.0版本之前, 默认字符集是latin1, 使用默认字符集的时候输入中文会出现乱码问...
    99+
    2023-05-16
    MySQL字符集应用 MySQL字符集 MySQL基础
  • mysql如何修改字符集
    小编给大家分享一下mysql如何修改字符集,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、修改my.ini配置文件(mysql...
    99+
    2024-04-02
  • MySQL DB字符集如何修改
    这篇文章主要介绍了MySQL DB字符集如何修改,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1>將原DB(test1)結構導出 C:...
    99+
    2024-04-02
  • Mysql中怎样修改字符集
    这篇文章将为大家详细讲解有关Mysql中怎样修改字符集,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 修改数据库字符集:[sql] AL...
    99+
    2024-04-02
  • 怎么修改mysql的字符集
    今天就跟大家聊聊有关怎么修改mysql的字符集,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。怎么修改mysql的字符集1.在DOS窗口下运行 ...
    99+
    2024-04-02
  • mysql然后修改字段的字符集
    本文小编为大家详细介绍“mysql然后修改字段的字符集”,内容详细,步骤清晰,细节处理妥当,希望这篇“mysql然后修改字段的字符集”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。...
    99+
    2024-04-02
  • mysql数据库字符集学习总结
    MYSQL数据库字符集包括字符集(CHARACTER)和校对规则(COLLATION)两个概念。MYSQL 支持的字符集和校对规则可以通过命令showcharacter set;查看。和字符集有关的变量my...
    99+
    2024-04-02
  • mysql怎么修改表的字符集
    这篇文章主要介绍mysql怎么修改表的字符集,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mysql改表的字符集的方法:1、修改表的编码为utf8,代码为【alter table s...
    99+
    2024-04-02
  • linux下mysql字符集如何修改
    这篇文章主要讲解了“linux下mysql字符集如何修改”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux下mysql字符集如何修改”吧!修改方法:1、打开并编辑“my.cnf”文件;...
    99+
    2023-06-22
  • Mysql中怎么修改表字符集
    本篇文章给大家分享的是有关Mysql中怎么修改表字符集,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.导出表结构  mysqldu...
    99+
    2024-04-02
  • python学习之字符串
    目录 python学习之字符串 1. python字符串概述 2. Python字符串运算符 3. python字符串格式化 ...
    99+
    2023-01-30
    字符串 python
  • python3学习之字符串
    s='this is test message's.capitalize()    首字母大写,其它小写               s.find(sub[, start[, end]])      在指定范围内(默认全部字符串),查找su...
    99+
    2023-01-31
    字符串
  • mysql批量修改字符集的方法
    这篇文章主要介绍mysql批量修改字符集的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mysql如何批量修改字符集的方法:首先需要利用语句,生成所有实际执行的语句;然后基于My...
    99+
    2024-04-02
  • mysql怎么修改表字符集编码
    mysql修改表字符集编码的操作步骤:借助Navicat for MySQL管理工具。下载安装并打开Navicat软件。点击“连接”按钮,输入ip地址、端口号、用户名及密码。连接数据库。连接成功后,选择要使用的数据仓库,右键选择“数据库属性...
    99+
    2024-04-02
  • 如何批量修改mysql表字符集
    1. 更改单张表的编码 ALTER TABLE YOUR_TABLE_NAME DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; 2....
    99+
    2023-09-05
    mysql 数据库
  • 修改mysql默认字符集的方法
    要修改MySQL的默认字符集,可以采取以下方法:1. 在MySQL配置文件中修改:- 打开MySQL的配置文件(通常是my.cnf或...
    99+
    2023-09-22
    MySQL
  • MySQL怎么修改数据库字符集
    要修改MySQL数据库的字符集,可以使用以下步骤: 登录到MySQL数据库服务器。 执行以下命令,将数据库字符集修改为指定的字符集...
    99+
    2024-04-09
    mysql 数据库
  • mysql的默认字符集怎么修改
    MySQL的默认字符集可以通过以下两种方法进行修改:1. 修改配置文件:打开MySQL的配置文件(通常是my.cnf或my.ini)...
    99+
    2023-09-27
    mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作