Windows下的mysql字符集格式修改

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 在Windows上的MySQL 5.7.17,若安装时未设置字符集,可能导致乱码问题。本文提供了解决方案:首先,通过`mysql -uroot -p`登录并使用`show variables like '%char%';`查看当前字符集。然后,有两种修改方法:一是使用Shell命令临时修改9个相关属性为utf8;二是永久修改,在my.ini配置文件中将[mysqld]、[client]、[mysql]下的字符集改为utf8。记得重启MySQL服务以应用更改。此外,还提供了修改数据库和表字符集的SQL命令。

Windows下的mysql字符集格式修改

笔者关于数据库的字符集踩了不少坑,由于安装时没有事先设置字符集,导致后面使用数据库时乱码,好烦。这个修改过程是笔者亲自配置成功的步骤,现在分享给大家,希望可以解决你的问题。

使用管理员运行cmd 或者 PowerShell,笔者这里使用的是Windows PowerShell。数据库版本是5.7.17.

1. 首先查看自己数据库的字符集

1.1 登录mysql

mysql -uroot -p密码

image.png

1.2 查看 MySQL 数据库服务器和数据库字符集

show variables like '%char%';

image.png

这里显示的是各个属性的字符集格式,如gbk,latin1等。

2.修改数据库的字符集(两种方式,推荐使用第二种!)

2.1 【方式一】使用shell命令修改(不会永久生效)

#修改这9种属性即可
 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 character_set_system=utf8;
 set collation_connection=utf8;
 set collation_database=utf8;
 set collation_server=utf8;
#客户端、服务器、数据库字符集的命令

image.png

再次查看数据库字符集

show variables like '%char%';

我们可以看到已经修改为 utf8 格式。
image.png

到此已经修改成功。

#退出mysql
exit

image.png

2.2 【方式二】使用配置 my.ini 方式(或者my-default.ini)

2.2.1 首先停止数据库服务

image.png

my.ini在数据库的安装目录中
我的是在 D:\Program Files\mysql-5.7.17-winx64 目录下

最好采用管理员权限打开文件,因为有可能无法保存。

2.2.2 开始配置my.ini (注意如果文件名是my-default.ini,请改为my.ini 切记!!!!!)

配置如下:
分别在文件中找到[mysqld], [mysql] ,[client].把下面的字符集格式改为 utf8

***注意不是utf-8,utf-8不生效!!!***
如果没有[mysql] ,[client]的话自己写上例如[mysql]。
看清楚,不要重复哦。

[mysqld]

字符集

character_set_server=utf8
image.png

[client]

字符集

default-character-set=utf8

image.png
[mysql]

字符集

default-character-set=utf8
image.png

保存!

net start mysql

image.png

需要重新登录mysql

mysql -uroot -p密码
show variables like '%char%';

现在我们可以看到字符集都已经成功永久改成utf8
image.png

按照以上步骤修改,是完全可以成功的永久修改字符集为utf8。

以下是几个常用修改字符集命令:

#修改单个数据库的字符集
 alter database 数据库名 default character set = utf8; 
#创建数据库时设置字符集
create database 数据库名 character set utf8;
#修改单张数据表字符集
alter table 表名 default character set = utf8; 
alter table 表名 convert to character set utf8;
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
关系型数据库 MySQL 数据库
Windows版MySql8.0安装(亲测成功!)
Windows版MySql8.0安装(亲测成功!)
61 1
|
2天前
|
编解码 安全 关系型数据库
祝福CSDN的小伙伴2024年快乐!Windows7安装MySQL
祝福CSDN的小伙伴2024年快乐!Windows7安装MySQL
|
5天前
|
安全 关系型数据库 虚拟化
WIndows Server 远程桌面服务—RDS
WIndows Server 远程桌面服务—RDS
|
18天前
|
关系型数据库 MySQL Windows
windows安装MySQL5.7教程
windows安装MySQL5.7教程
27 0
|
1月前
|
关系型数据库 MySQL C++
Windows Server 2012R2 安装mysql 丢失VCRUNTIME140_1.dll------亲测
Windows Server 2012R2 安装mysql 丢失VCRUNTIME140_1.dll------亲测
13 0
|
2月前
|
NoSQL Java 应用服务中间件
使用innoSetup将mysql+nginx+redis+jar包打包成windows安装包
使用innoSetup将mysql+nginx+redis+jar包打包成windows安装包
使用innoSetup将mysql+nginx+redis+jar包打包成windows安装包
|
1天前
|
关系型数据库 MySQL 数据库
docker MySQL删除数据库时的错误(errno: 39)
docker MySQL删除数据库时的错误(errno: 39)
|
1天前
|
关系型数据库 MySQL 数据库连接
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
|
2天前
|
存储 Oracle 关系型数据库
oracle 数据库 迁移 mysql数据库
将 Oracle 数据库迁移到 MySQL 是一项复杂的任务,因为这两种数据库管理系统具有不同的架构、语法和功能。
14 0
|
9天前
|
关系型数据库 MySQL Linux
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
http://www.vxiaotou.com