mysql编码问题

很多人在操作数据库时,经常遇到在表中添加中文就显示?的情况,其实这就是编码问题,想要解决此问题,只需要更改编码就可以解决。

1.长久解决

长久解决方法就是更改my.ini配置文件。

  • 查看my.ini文件位置:
    mysql分为安装目录和数据目录,一般我们解压mysql的目录就是安装目录,而数据目录就是存放数据库或者表的地方。它们的存放位置可以通过配置文件my.ini查看。有的配置文件在programData的MySQL目录下,有的在Program Files的MySQL目录下。我的在programData目录下。
    my.ini文件
    my.ini里面指向的安装目录:
    在这里插入图片描述

my.ini指向的数据存放目录:
在这里插入图片描述

知晓了这两个位置后,下面就是更改编码了。

  • 更改my.ini中相关编码,避免乱码问题
  1. 更改客户端编码
    在这里插入图片描述
  2. 更改服务端编码
    在这里插入图片描述
    将客户端和服务端设置完成后,需要打开windows中的服务管理器(在cmd中直接输入services.msc),然后重启mysql57服务,配置文件才可以生效。
    或者直接以管理员身份运行cmd,然后输入net stop mysql57net start mysql57完成重启。选择上述任意一个方案后,以管理员身份运行cmd,登录到mysql服务器中,查看编码是否改变。

进入到mysql服务器中命令:mysql -uroot -p密码
查看编码是否改变:show variables like 'char%';【模糊查询查看】

这里存在一个小问题,就是如果my.ini文件在programData目录下的话,需要在program Files下再创建一个my.ini文件。文件内容如下:

[mysqld]
#设置3306端口号
port=3306
#服务端使用的字符集默认为utf-8
character-set-server=utf8
[mysql]
#客户端使用的字符集默认为utf8
default-character-set=utf8

在这里插入图片描述
解决完编码后,无论创建数据库还是创建表,默认的编码都是utf-8,不会再出现乱码问题!

2. 暂时解决

暂时解决就是每次在创建数据库和表是都要指定编码,但是只对此次创建的有效,当下次创建不指定时,仍然存在乱码情况。

因为没有修改配置文件,因此每次创建数据库或者表时都需要指定编码。

  • 创建数据库时:
    create database 数据库名 default charset=utf8;
  • 创建表时:
    create table 表名(字段名1 数据类型1,字段名2 数据类型2,...) default charset=utf8

这样就可以让你创建的数据库和表中的数据类型为字符类型的编码为utf-8编码,但是仅仅针对这一个数据库而言。因此,推荐第一种方式!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值