Linux下修改MySQL字符集等配置

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Linux下修改MySQL字符集等配置

utf8下一个中文字符用三个字节表示,GBK(或gb2312)下一个中文字符用两个字节表示。utf8mb4是强烈建议修改的字符集,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。


MySQL的“utf8mb4”是真正的“UTF-8”。MySQL的“utf8”是一种“专属的编码”,它能够编码的Unicode字符并不多。MySQL8.0后默认字符集就是utf8mb4。


如下图所示,分别使用不同命令查看当前数据库字符集:

show variables like '%char%';
show global variables like '%char%';

aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTcxMjE1MTExMDAyOTgx.png


Linux下编辑/etc/my.cnf

Windows环境下是my.ini,Linux环境下是my.cnf。

[mysql]
default-character-set=utf8
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
character_set_server = utf8
init_connect='SET NAMES utf8'
#lower_case_table_names=1  忽略大小写
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
default-character-set = utf8
[mysql.server]
default-character-set = utf8
[client]
default-character-set = utf8

也可以通过临时会话修改(重启失效):

//客户端需要的
SET GLOBAL character_set_clinet=utf8;
//查询连接中的文本编码
SET GLOBAL character_set_connection=utf8;
//mysql返回结果的编码
SET GLOBAL character_set_results=utf8;
//mysql服务器存储文本的格式
SET GLOBAL character_set_server=utf8;
//数据库
SET GLOBAL character_set_database=utf8;

重启mysql服务,查看字符集:

如果脚本文件保存时使用了DOS格式,Linux中可能会看到这样的错误:/bin/sh^M:损坏的解释器: 没有那个文件或目录。使用VIM命令,进入命令行模式,执行如下操作即可。

:set ff=unix
:wq

SET NAMES 'utf8mb4' 语句其与这三个语句等价:

//客户端需要的
SET GLOBAL character_set_clinet=utf8mb4;
//查询连接中的文本编码
SET GLOBAL character_set_connection=utf8mb4;
//mysql返回结果的编码
SET GLOBAL character_set_results=utf8mb4;

Windows环境MySQL5.7

如果是安装版本且默认安装,那么配置文件my.ini在C:\ProgramData\MySQL\MySQL Server 5.7下面。这里注意哦,是在ProgramData路径下。


MySQL的8个字符集说明

  • character_set_client:服务器解码请求时使用的字符集
  • character_set_connection:服务器处理请求时会把请求字符串从character_set_client转换为character_set_connection
  • character_set_database:当前数据库的字符集
  • character_set_server:服务器安装时指定的默认编码格式。
  • character_set_results:服务器向客户端返回数据时使用的字符集
  • character_set_filesystem
  •  文件系统的编码格式,把操作系统上的文件名转化成此字符集,即把 character_set_client转换character_set_filesystem, 默认binary是不做任何转换的。
  • character_set_system
  •  数据库系统使用的编码格式,这个值一直是utf8(有时可以看到是utf8mb3其实就是utf8),不需要设置,它是为存储系统元数据的编码格式。
  • character_sets_dir: 这个变量是字符集安装的目录。

在启动mysql后,我们只关注下列变量是否符合我们的要求

character_set_client
character_set_connection
character_set_database
character_set_results
character_set_server

下列三个系统变量我们不需要关心,不会影响乱码等问题

character_set_filesystem
character_set_system
character_sets_dir


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
18天前
|
关系型数据库 MySQL Linux
MySQL数据库下载安装教程(Windows&Linux)
本文档详细介绍了MySQL的安装步骤,包括安装前的准备工作、下载安装包、Windows和Linux系统下的具体安装流程,以及如何配置MySQL服务、设置环境变量、启动服务和连接数据库等关键操作。
|
24天前
|
数据库连接 Linux Shell
Linux下ODBC与 南大通用GBase 8s数据库的无缝连接配置指南
本文详细介绍在Linux系统下配置GBase 8s数据库ODBC的过程,涵盖环境变量设置、ODBC配置文件编辑及连接测试等步骤。首先配置数据库环境变量如GBASEDBTDIR、PATH等,接着修改odbcinst.ini和odbc.ini文件,指定驱动路径、数据库名称等信息,最后通过catalog.c工具或isql命令验证ODBC连接是否成功。
|
1月前
|
缓存 资源调度 安全
深入探索Linux操作系统的心脏——内核配置与优化####
本文作为一篇技术性深度解析文章,旨在引领读者踏上一场揭秘Linux内核配置与优化的奇妙之旅。不同于传统的摘要概述,本文将以实战为导向,直接跳入核心内容,探讨如何通过精细调整内核参数来提升系统性能、增强安全性及实现资源高效利用。从基础概念到高级技巧,逐步揭示那些隐藏在命令行背后的强大功能,为系统管理员和高级用户打开一扇通往极致性能与定制化体验的大门。 --- ###
66 9
|
1月前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
46 5
|
1月前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
97 3
|
1月前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
45 3
|
1月前
|
存储 SQL 关系型数据库
2024Mysql And Redis基础与进阶操作系列(1)作者——LJS[含MySQL的下载、安装、配置详解步骤及报错对应解决方法]
Mysql And Redis基础与进阶操作系列(1)之[MySQL的下载、安装、配置详解步骤及报错对应解决方法]
|
1月前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
111 3
|
7月前
|
存储 关系型数据库 MySQL
LINUX中的mysql(一)安装
MySQL是一种常用的开源关系型数据库管理系统,广泛应用于Linux系统中。它提供了一个灵活、高效和可扩展的数据库解决方案,被许多应用程序和网站用于存储和管理数据。
189 0
|
2月前
|
Ubuntu 关系型数据库 MySQL
Linux系统MySQL安装
【10月更文挑战第19天】本文介绍了在 Linux 系统上安装 MySQL 的步骤,包括安装前准备、安装 MySQL、启动 MySQL 服务、配置 MySQL 以及验证安装。适用于 Ubuntu/Debian 和 CentOS/Fedora 系统,提供了详细的命令示例。
295 1