项目场景:
在使用Navicat时遇到的问题:
- 用Navicat运行一个比较大的.sql文件时报错:[Err] 2006 - MySQL server has gone away
- Navicat运行sql文件出现 [ERR] 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci‘ 错误原因
- Navicat提示Access violation at address “xxxxxxxxx” in module ‘navicat.exe’Read of address “xxxxxxxxx”
1. 用Navicat运行一个比较大的.sql文件时报错:[Err] 2006 - MySQL server has gone away
用Navicat 在本地运行一个比较大的 .sql 文件时报错::
[Err] 2006 - MySQL server has gone away
原因分析:
因为navica本身做了限制 所以导致报错。(可能)
解决方案:
工具–> 服务器监控–>mysql
出现下面页面:选择 变量 ,找到 max_allowed_packect ,修改它的值即可。
2. 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文件,运行成功
3. 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.插入成功。 (未尝试)