一、背景
在mysql数据库中,默认使用的是latin字符集,所以无法正常的支持中文字符。在my.ini文件中将配置支持GBK编码,方便于后续数据库操作而不会报错误。
二、问题如下图所示
通过上述图,存在以下几个问题:
- 默认创建的数据库和表是latin1编码。
- my.ini配置文件中设置为: character-set_server=utf-8,将创创建数据和表默认为utf-8编码,不支持中文。
- 将现有utf-8编码转变为GBK编码,才可以支持中文的读与写。
- 最好的方式是配置my.ini支持GBK编码。
三、解决问题
第一,创建table的时候就使用GBK编码;
create table students (
id INT(11) UNSIGNED,
name VARCHAR(32),
age INT(4) unsigned,
sex VARCHAR(16)
) character set = GBK;
第二,修改已经有的table的编码
当使用默认编码创建了一个table的时候,是不能支持中文的,这时候使用如下语句对table_name进行修改:
mysql>alter table students convert to character set GBK
此后再往这个table插入中文的时候,就可以正常存储和读取了,
第三,修改mysql的my.ini配置文件,让mysql默认编码为GBK
character-set服务器托管网-server=GBK
Show create database student; #查数据库编码
mysql> show create database student;
+----------+------------------------------------------------------服务器托管网-----------+
| Database | Create Database |
+----------+-----------------------------------------------------------------+
| student | CREATE DATABASE `student` /*!40100 DEFAULT CHARACTER SET gbk */ |
+----------+-----------------------------------------------------------------+
show create table student; #查看一个table的编码,假如table名为students:
mysql> show create table students;
| students | CREATE TABLE `students` (
`id` int(11) unsigned DEFAULT NULL,
`name` varchar(32) DEFAULT NULL,
`age` int(4) unsigned DEFAULT NULL,
`sex` varchar(16) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=gbk |
四、my.ini配置文件
[mysqld]
port=3306
basedir=D:mysql-5.7.18-winx64
datadir=D:mysql-5.7.18-winx64Data
sql-mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
character-set_server=gbk
mysql> status
--------------
mysql Ver 14.14 Distrib 5.7.18, for Win64 (x86_64)
Connection id: 3
Current database: student
Current user: root@localhost
SSL: Not in use
Using delimiter: ;
Server version: 5.7.18 MySQL Community Server (GPL)
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: gbk
Db characterset: gbk
Client characterset: gbk
Conn. characterset: gbk
TCP port: 3306
Uptime: 1 min 56 sec
Threads: 1 Questions: 17 Slow queries: 0 Opens: 105 Flush tables: 1 Open tables: 98 Queries
per second avg: 0.146
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
转载请注明出处: 1. @GrpcServise 的作用和优势 在没有使用 @GrpcServise 注解编写服务端时,我们通常需要自定义 Server 以及端口,包括 start,stop ,注册service 方法等等,开发比较复杂。 使用 @Gr…