MySql默认字符设置导致MyBatis执行后插入数据库表中字符中问号
MySql默认字符设置导致MyBatis执行后插入数据的中文字符为??
重点看具体解决办法
一、检查mysql的字符设置信息
cmd中输入mysql -u root -p 输入密码 进去之后 输入
show variables like ‘character%’;
二、设置mysql配置文件my.ini
在mysql安装目录下,按如下设置,
重点是default-character-set=utf8,character-set-server=utf8
另外,注意basedir,datadir 要是你自己电脑的正确安装路径和数据文件路径
[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\Program Files\mysql-5.7.36-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\Program Files\mysql-5.7.36-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
max_allowed_packet=64M
#默认时区设置
default-time-zone='+8:00'
三、重启MySQL服务
如果你是免安装方式的mysql,请将my-defaut.ini,改后缀名,重新创建一个my.ini,按第二步配置内容修改,修改后重启一下mysql服务。
注:重启可以采用cmd命名行,停止服务:net stop mysql ,启动服务: net start mysql
或者 打开任务管理,切换到服务,点击MySQL,右键点击 重新启动。