mysql常见错误
本博客参考自:http://www.cnblogs.com/yougewe/p/5143961.htm
1. 报错:[2002] 由于目标计算机积极拒绝,无法连接。解析:数据库连接信息错误,你可能把测试环境连接部署到线上去了,这问题大发了,赶紧恢复吧? 附注:如果没有报错是因为你线上机器可以连接测试库,那问题也大发了;
2. 报错:[1146] Table 'bbbq' doesn't exist。解析:表不存在,赶紧查查,是不是本次新加的表没有被添加到线上吧,或者表名写错了? 附注:一般过了测试的不太可能是表名写错了;3. 报错:[1054] Unknown column 'column_x' in 'field list'。解析:指定的列不存在,要么库中没有,要么写错了,赶紧查! 附注: 同上;
4. 报错:[1366] Incorrect string value: '\xA9\x96' for column 'x_name' at row 1。解析:字符集问题,如一个gbk的字被字段设置为gb2312接收则会出现此问题,赶紧改回来吧!附注:请尽量使用utf-8编码,代码与入库都方便;
5. 报错:[1364] Field 'pid' doesn't have a default value。解析:指定字段没有默认值,请确认应该获取到的值是否未获取从而为null,为某些不必要字段指定数据库默认值。 附注: 如有索引关系,请一定设置not null 选项,否则索引将可能失效;
6. 报错:[1366] Incorrect integer value: '' for column 'townId' at row 1。解析:给定的值不符合字段类型要求,在入库之前先确认该字段需要什么类型,可做相应强制转换,再入库。 附注:某些版本的mysql可以自行强制转换类型处理此问题,但是结果可能已经超出你的预期;
7. LOAD DATA INFILE ,从文件直接导入数据到数据库
7.1. 报错:[2] File 'D:/wamp/www/a/area.csv' not found (Errcode: 2)。解析:找不到指定的csv文件,确认目录位置是否给定正确,如果正确,确认该文件是否为动态生成而目前尚未生成。 附注:小问题;
7.2. 报错:[13] Can't get stat of '/opt/app/mysql5/var/D:/wamp/www/a/area.csv' (Errcode: 2)或者提示没有权限操作数据库。解析:数据库与web不在同一台服务器,需要指定关键字LOCAL,从而将web与数据库分开。 附注:LOCAL参数是在必要时候使用,因为不指定LOCAL的操作将看起来更安全;
7.3. 报错:[1366] Incorrect integer value: '北京' for column 'provinceId' at row 1。解析:这里使用不指定字段的方式插入数据库,因此,如果csv文件的值顺序与数据库字段顺序不对应的话,将会有很多类似的报错,而这则是致命的,因为全部都错了,即使偶有个别正确入库的,那也是错的你也不会想要的结果,请以正确的顺序写入csv文件或者指定字段; 附注:这里的1366 与前面的1366 意义是不一样的;
7.3. 示例LOAD: LOAD DATA LOCAL INFILE 'D:/wamp/www/a/area.csv' REPLACE INTO TABLE `address` CHARACTER SET utf8 FIELDS TERMINATED BY ',' (`provinceId`, `provinceName`, `cityId`, `cityName`, `areaId`, `areaName`, `townId`, `townName`); 附注:要求每个字段都是有值的,即几个字段就要几个',';
8. [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 'LIMIT 0, 1000' at line 1。解析:好吧,这是个最通用的错误解释,就是说你的语法写错了。比如 where a_id= order by id desc;这里你原本是想获取一个ID然后去查询,但是后面的ID得到空值,所以整个语法就错了。其实,如果是直接接收参数去查询,这本身可能报错,也是一个注入点,请一定要处理传入的值,一般要求'='号后给''号,整型参数用intval()格式化等等安全意识!
9. 讲解:REPLACE与INSERT 功能其实是差不多的(唯一键是必须的),但是REPLACE会在数据库中存在此记录时先删除再插入,如有自增ID,将会被迅速变大,从而不必手动执行删除操作,而INSERT重复数据时则将报错(可配合UPDATE使用)。适当使用两个功能,解决问题!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南