MySQL 数据库的编码格式设置主要涉及两个方面:数据库服务器级别的编码设置和数据库或表的字符集与排序规则设置。
字符集(Character Set):定义了可以存储在数据库中的字符集合。
排序规则(Collation):定义了字符比较和排序的规则。
编辑 MySQL 的配置文件(通常是 my.cnf
或 my.ini
),添加或修改以下配置项:
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
然后重启 MySQL 服务使配置生效。
创建数据库时指定字符集和排序规则:
CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
创建表时指定字符集和排序规则:
CREATE TABLE mytable (
id INT PRIMARY KEY,
name VARCHAR(255)
) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
utf8mb4
可以支持存储包括表情符号在内的所有 Unicode 字符。问题:插入数据时出现乱码。
原因:可能是客户端连接字符集设置不正确,或者数据库、表的字符集与实际数据不匹配。
解决方法:
SET NAMES utf8mb4;
以下是一个完整的示例,展示了如何在创建数据库和表时设置编码格式,并确保客户端连接的字符集正确:
-- 创建数据库时指定字符集和排序规则
CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 使用新创建的数据库
USE mydatabase;
-- 创建表时指定字符集和排序规则
CREATE TABLE mytable (
id INT PRIMARY KEY,
name VARCHAR(255)
) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 确保客户端连接字符集正确
SET NAMES utf8mb4;
通过以上步骤,可以有效避免编码问题,确保数据的正确存储和处理。
企业创新在线学堂
云+社区沙龙online[数据工匠]
云+社区技术沙龙[第17期]
Elastic Meetup
DB-TALK 技术分享会
腾讯云数据库TDSQL训练营
腾讯云数据库TDSQL训练营
云+社区沙龙online [国产数据库]
企业创新在线学堂
企业创新在线学堂
企业创新在线学堂
领取专属 10元无门槛券
手把手带您无忧上云