【实用】mysql配置 及将线上数据导入本地 问题解决及记录

ERR 1292 - Incorrect datetime value: '0000-00-0000:00:00' for column 'BIRTH_DATE' at row 1

此问题是mysql当前配置不支持日期为空,或者为'0000-00-0000:00:00'得情况

1、直接在数据库执行

复制代码
# 修改全局
set @@global.sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
# 修改当前
set @@sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

2、然后刷新,重新连接数据库,就解决问题了

出现这种情况就是:数据库不支持Datetime为0的情况,更换一下模式就可以了

也可以配置到mysql.ini下(windows)

执行报错Unknown error 3065。

mysql中distinct和order by 一起用时,order by的字段必须在select中
mysql 5.7.14

SELECT DISTINCT evt_tim FROM evt_etl ORDER BY evt_id ASC;
执行报错Unknown error 3065。

因为找不到3065错误的详细信息,因此做了一下测试:

- 1.SELECT DISTINCT evt_id FROM evt_etl ORDER BY evt_id ASC;

- 2.SELECT DISTINCT evt_tim,evt_id FROM evt_etl ORDER BY evt_id ASC;

- 3.SELECT evt_tim FROM evt_etl ORDER BY evt_id ASC;
1,2,3 这三条语句均执行正确。

mysql distinct和order by 一起用时,order by的字段必须在select中。

网上查了一下资料,原因总结如下:

首先,在mysql中distinct 的执行顺序高于order by。
第二,distinct执行时会对查询的记录进行去重,产生一张虚拟的临时表;
第三,order by执行时对查询的虚拟临时表进行排序,产生新的虚拟临时表。
综合来看,如果order by的字段不在select中,执行sql语句时首先执行distinct,之后产生的虚拟临时表中没有order by的字段,所以再执行order by时会报错。

解决方法

检查mysql中是否设置了这个

复制代码
sql_mode=STRICT_TRANS_TABLES

<p>这个错误信息通常出现在 MySQL 中,它表示 MySQL 配置文件中没有定义 <code>sql_mode</code> 参数,或者您的 MySQL 版本不支持它。<code>sql_mode</code> 参数用于控制 MySQL 在执行查询时的行为。具体来说,<code>NO_ENGINE_SUBSTITUTION</code> 参数会禁止 MySQL 在找不到指定的存储引擎时使用默认存储引擎进行替换,而 <code>STRICT_TRANS_TABLES</code> 参数会启用严格的事务模式,不允许插入无效的数据。</p>

STRICT_TRANS_TABLES</code> 参数会启用严格的事务模式

实际上就是sql写得不规范时,mysql是严格模式时某些sql就会报错

但是mysql没有设置该模式或是其它模式时,这些sql正常

由于生产没有启用该模式,所以这里也去掉该设置,测试环境运行正常

相关推荐
滨哥GPT6 分钟前
Codex修改数据库后项目启动失败怎么办?Migration、Schema与数据结构排查
数据库·ai编程·开发工具·schema·codex
戴西软件16 分钟前
国内有哪些数据轻量化格式转换软件?
数据库·算法·安全·信息可视化·自动化·rpa
λqaq71 小时前
MySQL 数据库基础(2)约束、用户权限、远程连接、外键与 TCP/UDP 理解
linux·数据库·python·tcp/ip·mysql
丰锋ff1 小时前
基于C++11的数据库连接池
数据库
TDengine (老段)1 小时前
TDengine 应用案例 — 工业大数据与智能制造
大数据·数据库·制造·时序数据库·tdengine·涛思数据
狂热开发者1 小时前
打印机卖到欧洲以后 App 更新了,旧包装二维码还能用吗
数据库
张3蜂1 小时前
2026 中国国产数据库 Top 20:市场格局、开源协议与竞品分析
数据库
烟雨归来2 小时前
Oracle 19c RAC登录风暴引发library cache lock生产故障分析
数据库·oracle
longxiaozhang62 小时前
C#异常处理:程序出错了怎么办?
开发语言·数据库·c#
NineData2 小时前
DTCC 2026 NineData 叶正盛:如何统一管理人与 AI Agent 的数据访问行为
数据库·人工智能·sql·oracle·agent·ninedata·dtcc