mysql 5.7.21 编码问题解决

概要:

今天学习python 的时候,到了数据库连接部分,然后看见我的老大哥上面注明了一个编码设置,charset = utf-8,我记得之前在单独使用mysql的时候,我也遇到了这个问题,所以我重现了我遇到的问题。

实验环境

  1. mysql workbench 如果你使用命令行之后也会遇到同样的问题
  2. mysql 5.7.21 官方的最新版本
  3. ubuntu 系统

探索过程:

首先先讲一下基础:
我们查看一下mysql的编码默认设置是什么:

# 查看里面包含有char的变量
show variables like '%char%'

查看编码
我们可以很清楚的看见如上的图里面显示的内容,我截图到了一个网上的表来解读一下这里面的内容:如下,很好的总结了编码的内容,值得好好去理解一下
http://www.cnblogs.com/cchust/p/4327019.html
一开始建数据库的时候

-- 创建一个叫test111的数据库
create schema test111;
-- 使用test111
use test111;
-- 往库里建立表格table
create table table_测试编码
(
    ID int,
    name varchar(50),
    primary key(ID)
);
-- 往里面插入编码
insert into table_测试编码 values('123','张三')

这个时候就会有一个报错了!1366报错,意思就是中文不能编码,为啥呢?因为建数据库的时候,就是一开始的那个截图显示character_set_database = latin1,这种编码意思是建立数据库的编码 不能用中文的

解决方案

1.我觉得不够完全,我一开始在workbench 不用命令行建库的时候,上面有一个选项,选到utf-8 能解决问题,但是我这么一想,如果我以后去服务器上搞这个,没有GUI给我,我咋办。

2.网上所说的,在配置文件里面改,最新版本的5.7.21就没有这个my.cnf 这个文件存在,自建只有,重启也并不能解决问题。本来我准备删掉 换旧版本了,但是想想不能逃避问题,经过摸索找出来修改配置的方法,如下:

$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

这个是可行的!是有这个文件的,然后
在 [mysqld] 域下加上:

character-set-server=utf8

再重新启动服务器

$ sudo systemctl restart mysql

最后附上成功的图:
修改之后的成功图片

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

河海哥yyds

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值