mysql 字符编码问题

问题描述

当数据库的编码非utf-8 时,此时插入数据为中文时,因为编码问题会报错无法写入数据。

更改配置文件配置解决

编辑配置文件

[mysqld]
character-set-server=utf8
#collation-server=utf8_general_ci
default-character-set = utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysql.server]
default-character-set = utf8
[mysqld_safe]
default-character-set = utf8

重启mysql 数据库

查看更改后效果

mysql> show variables like '%char%';
+--------------------------+---------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.7\share\charsets\ |
+--------------------------+---------------------------------------------------------+

注:character_set_database    必须为utf8 才可以。

创建数据库时指定数据库的编码格式

CREATE DATABASE mydb DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

额外说明

对于之前编码格式不是utf8时创建的数据库,此时再更改配置文件中的编码格式为utf8 则对之前的数据库不生效,而且数据库中有数据时更改容易造成数据错误。只能创建新的数据库指定编码格式,之后采用新数据库。

猜你喜欢

转载自www.cnblogs.com/fanggege/p/10407944.html