Mysql中文问号‘?‘乱码问题

最近做数据库遇到中文乱码的问题,发现自己相关的设置没有设置好,遂做如下记录。

首先管理员身份进入Mysql,输入命令“ show variables like 'char%'; ”,

Mysql中文问号‘?‘乱码问题

可以发现character_set_server是latin1,所以中文是乱码的情况。

方法一:

根据别人的教程,去mysql文件路径下找到“my.ini文件”,并尝试找到文件中[mysqld]的部分,并尝试把character-set-server后面的等号改为utf8。改好以后在“计算机管理”的“服务”项中“mysql”并重新启动。

如果还是没有办法的话就【检查所建数据库是否为utf8_general_ci格式】。这一步我还没有完成,因为我的文件没有“my.ini”文件,只有“my_default.ini”文件,所以需要进行其他的排查。

Mysql中文问号‘?‘乱码问题

Mysql中文问号‘?‘乱码问题

方案二:此时我去搜索了一下my_default.ini的问题,知道了这是mysql的zip安装格式下需要解决的问题。因为我安装的这个mysql已经很久了,并且当初并没有用到中文,所以这里需要进一步的学习。

1.首先在mysql路径下新建一个“my.ini”文件,并输入“mysql添加用户主机怎么填_MySql安装与配置方法(MySQL添加用户、删除用户与授权)..._weixin_39764487的博客-CSDN博客”这个教程下的相关代码

[mysql]

# 设置mysql客户端默认字符集

default-character-set=utf8

[mysqld]

#设置3306端口

port = 3306

# 设置mysql的安装目录

basedir=D:\mysql\mysql-5.6.24-win32

# 设置mysql数据库的数据的存放目录

datadir=D:\mysql\mysql-5.6.24-win32\data

# 允许最大连接数

max_connections=200

# 服务端使用的字符集默认为8比特编码的latin1字符集

character-set-server=utf8

# 创建新表时将使用的默认存储引擎

default-storage-engine=INNODB以上代码标记部分需要修改为自己的目录,也就是解压的目录。
————————————————
版权声明:本文为CSDN博主「weixin_39764487」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_39764487/article/details/113300423

后续部分配合也尝试按照这一篇文章进行修改。

2.添加环境变量

参照文章流程做出如下操作:

(1)右键单击我的电脑->属性->高级系统设置(高级)->环境变量

点击系统变量下的新建按钮

输入变量名:MYSQL_HOME

输入变量值:D:\mysql\mysql-5.6.24-win32

#即为mysql的自定义解压目录。

(2)选择系统变量中的Path

点击编辑按钮

在变量值中添加变量值:%MYSQL_HOME%\bin

注意是在原有变量值后面加上这个变量,用;隔开,不能删除原来的变量值,

4)以管理员身份运行cmd(一定要用管理员身份运行,不然权限不够),

输入:cd C:\Program Files\MySQL\MySQL Server 5.6\bin 进入mysql的bin文件夹(不管有没有配置过环境变量,也要进入bin文件夹,否则之后启动服务仍然会报错误2)

输入mysqld -install(如果不用管理员身份运行,将会因为权限不够而出现错误:Install/Remove of the Service Denied!)安装成功
————————————————
版权声明:本文为CSDN博主「weixin_39764487」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_39764487/article/details/113300423

之后在cmd以管理员身份进行操作:

Mysql中文问号‘?‘乱码问题

显示已经安装过了,说明了目前mysql安装位置。我怀疑是不是我最新的没有安装成功。

Mysql中文问号‘?‘乱码问题

查看数据库也没有问题。这里继续查看“show variables like 'char%';”命令,发现还是latin1.

Mysql中文问号‘?‘乱码问题

这里我已经很想重装mysql了,但是我已经建立好了一个表,我并不想之后出现还要重新建表的情况,于是我找到了方法三。但是方法三参照别人的方法我执行不了“user mydb”的指令,所以干脆重装吧。

方法三的思路摘录自:

彻底解决MySQL中文乱码问题_u014022865的博客-CSDN博客

上一篇:淮安python培训班


下一篇:实用的人工智能 但数据 Python 速查表