mysql Navicat里中文显示“??”的解决

问题描述一:

例如:界面上输入的是中文或sql语句在命令行里插入的中文数据,在Navicat里显示的是“??”

在这里插入图片描述


原因分析:

字符集编码格式问题

右键数据库-新建查询 是否为utf8 (以下为正常显示中文的数据库)

 show variables like 'char%';

mysql Navicat里中文显示“??”的解决_第1张图片


解决方案:

1.右键数据库-编辑数据库-编码下拉栏确认为utf8。
mysql Navicat里中文显示“??”的解决_第2张图片
2. set character_set_server='utf8'(无效)

此命令运行成功后,重新连接刷新查询,又恢复之前的状态。
所以需要修改mysql的配置文件 vim /etc/my.cnf
[mysqld]中添加character-set-server=utf8 后重新启动mysql
mysql Navicat里中文显示“??”的解决_第3张图片


变量说明

一、character_set_client
   主要用来设置客户端使用的字符集。

二、character_set_connection
  主要用来设置连接数据库时的字符集,如果程序中没有指明连接数据库使用的字符集类型则按照这个字符集设置。

三、character_set_database
  主要用来设置默认创建数据库的编码格式,如果在创建数据库时没有设置编码格式,就按照这个格式设置。

四、character_set_filesystem
  文件系统的编码格式,把操作系统上的文件名转化成此字符集,即把 character_set_client转换
  character_set_filesystem, 默认binary是不做任何转换的。

五、character_set_results
  数据库给客户端返回时使用的编码格式,如果没有指明,使用服务器默认的编码格式。

六、character_set_server
  服务器安装时指定的默认编码格式,这个变量建议由系统自己管理,不要人为定义。

七、character_set_system
  数据库系统使用的编码格式,这个值一直是utf8,不需要设置,它是为存储系统元数据的编码格式。

八、character_sets_dir
  这个变量是字符集安装的目录。

在启动mysql后,我们只关注下列变量是否符合我们的要求

 character_set_client
 character_set_connection
 character_set_database
 character_set_results
 character_set_server

下列三个系统变量我们不需要关心,不会影响乱码等问题

character_set_filesystem
character_set_system
character_sets_dir

也可以直接在数据库连接地址的数据库名称后面加 ?characterEncoding=utf-8
在这里插入图片描述

问题描述二:

Navicat 安装提示:
No All Pattern Found!File Already Patched?

解决方法:

步骤一:删除注册表中的部分信息
1.快捷键win+r命令,然后输入regedit

2.点击确定,找到如下目录:计算机\HKEY_CURRENT_USER\Software\PremiumSoft
在上一张的Software的目录下,找到PremiumSoft

3.我是把该目录下除了Datat的数据都删除了。

注意:Navicat中存储的是你之前使用Navicat创建的连接,如果有用,强烈建议保留

如果你之前下载过,需要删除之前遗留的垃圾文件

你可能感兴趣的:(数据库,mysql,数据库,sql)