【菜鸟开发,在使用Navicat工具时,遇到的问题】

332 阅读2分钟

项目场景:

在使用Navicat时遇到的问题:

  1. 用Navicat运行一个比较大的.sql文件时报错:[Err] 2006 - MySQL server has gone away
  2. Navicat运行sql文件出现 [ERR] 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci‘ 错误原因
  3. Navicat提示Access violation at address “xxxxxxxxx” in module ‘navicat.exe’Read of address "xxxxxxxxx"

一、用Navicat运行一个比较大的.sql文件时报错:[Err] 2006 - MySQL server has gone away

用Navicat 在本地运行一个比较大的 .sql 文件时报错::

[Err] 2006 - MySQL server has gone away

原因分析:

因为navica本身做了限制 所以导致报错。(可能)

解决方案:

工具--> 服务器监控-->mysql 在这里插入图片描述 出现下面页面:选择 变量 ,找到 max_allowed_packect ,修改它的值即可。 在这里插入图片描述

二、Navicat运行sql文件出现 [ERR] 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci‘ 错误原因

报错信息:

[ERR] 1273 - Unknown collation: 'utf8mb4_0900_ai_ci'

原因分析

	生成转储文件的数据库版本为8.0.22,要导入sql文件的数据库版本为5.6.5,总之就是高版本导入到低版本,引起1273错误

解决方法

	打开sql文件,将文件中的所有
	utf8mb4_0900_ai_ci替换为utf8_general_ci
	utf8mb4替换为utf8
	保存后再次运行sql文件,运行成功

三、Navicat提示Access violation at address “xxxxxxxxx” in module ‘navicat.exe’Read of address "xxxxxxxxx"

打开Navicat无论点哪里就开始弹窗,提示错误 在这里插入图片描述

原因分析

可能是内存越界,需要重新注册windows的动态链接库。

解决方法

1. 首先“开始”—“cmd”,在打开的dos窗口中运行 (采用这种方法,已解决)
for %1 in (%windir%\system32\*.dll)do regsvr32.exe /s %1

回车运行后,可能需要等待一两分钟,然后,重新在navicat连接数据库,这样就可以了。 在这里插入图片描述

拓展:system32是Windows 操作系统的系统文件夹,是操作系统的中枢。system32在计算机C盘Windows文件夹中,其中包含了大量的用于 Windows 的文件。 这里主要用于存储 DLL 文件, 控制面板小程序(.CPL),设备驱动 (.drv),帮助文件 (.hlp 和 .cnt),MS-DOS 工具 (.com),语言支持文件 (.nls),屏幕保护 (.scr),安装信息文件 (.inf)以及其它用于支持, 配置或操作的文件。
2. 关闭Navicat for MySQL,重新打开(尝试过,未解决)原因:在navicat中表打开的太多了,内存不足而已,关掉一部分就好了
3. 直接卸载了MySQL 重装,简单粗暴好使!!! (未尝试)
4. 确认表字段字符集编码与字段类型、字段长度想匹配,我选择原来默认的latin1,结果存储varchar,长度为20。插入“王五”时出现内存越界。将所有字段类型为varchar字符集编码改为UTF-8.插入成功。 (未尝试)