MYSQL创建数据库时候直接指定编码和排序规则

本文介绍如何在MySQL中正确设置字符编码,包括创建数据库时指定编码、通过命令行设置以及在my.ini中配置。确保数据库、表、字段编码一致,避免乱码问题。

mysql 创建 数据库时指定编码很重要,很多开发者都使用了默认编码,但是我使用的经验来看,制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题。

我们遵循的标准是,数据库,表,字段和页面或文本的编码要统一起来
很多mysql数据库工具(除了phpmyadmin,我偶尔用,功能强速度慢)都不支持创建时指定数据库编码,当然可以改my.ini来解决这个问题,但是需要重新启动mysql,不过用下面的语句会更有效

GBK: create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

UTF8: CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

注意:如果不是通过my.ini配置文件设置的内容,只在当前状态下有效,当重启数据库服务后失效。所以如果想要不出现乱码只有修改my.ini文件,数据库编码可以在创建数据库时候指定UTF8,如下:
|character_set_client      | utf8                                  |
| character_set_connection | utf8                                  |
| character_set_database   | utf8                                  |
| character_set_filesystem | binary                                |
| character_set_results    | utf8                                  |
| character_set_server     | latin1                                |
| character_set_system     | utf8          

注意该配置| character_set_server     | latin1 无法设置成UTF8
交互时候仍然会出现乱码。

只有当修改my.ini中设置UTF8,才会全部修改成UTF8

-------------------------
mysql设置编码命令

SET character_set_client = utf8;
SET character_set_connection = utf8;
SET character_set_database = utf8;
SET character_set_results = utf8;/*这里要注意很有用*/
SET character_set_server = utf8;

SET collation_connection = utf8_bin;
SET collation_database = utf8_bin;
SET collation_server = utf8_bin;

my.ini中配置默认编码
default-character-set=utf8

连接数据库设置编码
jdbc:mysql://192.168.0.5:3306/test?characterEncoding=utf8

/*****************************************java与mysq编码对应****************************************/
java中的常用编码UTF-8;GBK;GB2312;ISO-8859-1;
对应mysql数据库中的编码utf8;gbk;gb2312;latin1



---------------------------
数据库连接串中指定字符集URL=jdbc:mysql://yourIP/college?user=root&password=yourPassword&useUnicode=true&characterEncoding=gbk

 

### 如何在 MySQL创建数据库时设置字符集排序规则MySQL 中,可以通过 `CREATE DATABASE` 语句来创建一个新的数据库,并通过附加选项指定字符集(Character Set)排序规则(Collation)。这一步骤对于确保数据存储的一致性准确性非常重要[^1]。 以下是标准的 SQL 语法: ```sql CREATE DATABASE database_name CHARACTER SET character_set_name COLLATE collate_name; ``` #### 参数说明 - **database_name**: 要创建的新数据库名称。 - **character_set_name**: 指定使用的字符集。例如,`utf8mb4` 是一种支持更多 Unicode 字符的常用字符集[^2]。 - **collate_name**: 指定该字符集下的具体排序规则。例如,`utf8mb4_unicode_ci` 是基于 Unicode 的大小写不敏感排序规则。 #### 示例代码 以下是一个具体的例子,展示如何创建名为 `my_database` 的数据库,并将其字符集设为 `utf8mb4`,排序规则设为 `utf8mb4_unicode_ci`: ```sql CREATE DATABASE my_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 如果未显式指定字符集排序规则,则会使用 MySQL 配置文件中定义的全局默认值。然而,在现代版本的 MySQL(如 5.5.3 及以上),`utf8mb4` `utf8mb4_unicode_ci` 已成为默认配置。 #### 修改现有数据库的字符集排序规则 如果需要修改已存在的数据库的字符集排序规则,可以使用 `ALTER DATABASE` 语句。需要注意的是,这一操作可能会对现有的表数据造成影响,因此建议先备份整个数据库[^3]。 示例代码如下: ```sql ALTER DATABASE old_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` #### 常见字符集及其适用场景 不同的字符集适用于不同类型的项目需求。例如: - **utf8mb4**: 支持完整的 Unicode 编码范围,适合多语言环境的应用程序[^4]。 - **utf8**: 主要覆盖基本的 Unicode 字符集合,通常能满足大多数日常应用的需求。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值