记录MySQL修改字段点击保存报1064语法错误的一种可能性及处理过程

博主在使用Navicat11连接MySQL8.0数据库时遇到一个问题,即在设计表并保存时出现1064语法错误。经过分析报错信息和SQL预览,发现执行语句存在错误。通过修改SQL语句为正确的格式,即指定字符集,问题得到解决。博主分享了整个排查和解决过程,提醒遇到类似问题的程序员冷静处理,提供了解决方案。

一、问题现状

本地研发环境的MySQL8.0,使用navicat11正常连接后选中一张表,并点击设计表,然后直接点击“保存”或者修改字段后再点击“保存”都会报错1064语法错误。同一个库中其他表按前面的步骤操作也没有问题。尝试连接其他数据库并修改表信息还是没有问题。问度娘,度娘也不愿意给个合适的解决方案,都是一些常规的语法错误,然后奔溃了一阵子后决定仔细研究研究。

二、问题排查

1、分析报错信息

仔细分析一下报错信息,一般而言,报错日志里面会将的很清楚哪里出了问题的。

[SQL]
ALTER TABLE `bus_secret` DEFAULT CHARACTER SET DEFAULT;
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DEFAULT' at line 1

仔细一看,里面有“DEFAULT CHARACTER SET DEFAULT”,应该时设置字符集的时候出问题了,但是没搞这个呀,甚至都没修改过任何信息,直接点的保存,怎么会出现这个?怎么会出现这个!怎么会出现这个!!!啊~

2、点击“SQL预览”

点击“SQL预览”发现诡异的一幕,居然有这么一条执行语句:

ALTER TABLE `bus_secret` DEFAULT CHARACTER SET DEFAULT; 

莫名奇妙,不知所以然,从哪儿来的也不知道。然后本能的想删掉它~我删。。。我删。。。我扇!这玩意不是用来删的。

再问问度娘,度娘告诉我,这个语句有问题呀,得设置指定字符集才行!!!所以,我复制了这句,新建了个查询窗口,粘贴进去,改造了一下,如下

ALTER TABLE `bus_secret` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

点击“运行”,执行成功!

3、验证

重新打开表设计,再去看“SQL预览”,发现里面没有原来那条执行语句了,而且,问题顺利解决了。再去点击保存,或者修改字段信息后点击保存都畅通无阻,一切恢复平静。

4、总结

遇事不要慌,作为一个程序员,这种事儿很常见。在此做个记录,一方面方便自己后续查阅,另一方面也是希望能够帮到和我遇到同样问题的小伙伴,欢迎大佬批评指正,不喜勿喷哦~

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值