win10中,在命令行情况下,Mysql显示各个端所使用的字符集命令: Microsoft Windows [版本 10.0.16299.64] (c) 2017 Microsoft Corporation。保留所有权利。 C:\Windows\system32>mysql -u root -proot Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version
爱可生 DBA 团队成员,负责项目日常问题处理及公司平台问题排查。热爱互联网,会摄影、懂厨艺,不会厨艺的 DBA 不是好司机,didi~
今天在线上遇到2个很有意思的MySQL案例,都是比较经典的问题,拿出来跟大家分享一下。为了对库表名称进行脱敏,我把问题抽象出来两个小的例子,且看分享。
1、在MySQL命令行使用sql语句进行建表时,MySQL 报错,这个问题之前遇到过几次,但是总是会因为疏忽又相遇,今天把这个问题写出来,加深印象吧。
下面这个报错,相信大多数童鞋都遇见过;那么碰到这个问题,我们应该怎么办呢?在MySQL 5.7及之前版本,出现“too many connection”报错,超级用户root也无法登录上去,除了重启实例,没有其他更好的解决办法;不过在MySQL 8.0版本中,是对连接管理做了一些优化,下面我们就来看一下。
如果该参数不开启,则对timestamp NOT NULL插入NULL值,不报错,无warning,插入后的值为当前时间
今天我们来分享一下MySQL的SQL mode , 这也是我们比较容易忽略的一点,我们在一开始安装数据库的时候其实就要先考虑要保留哪些SQL mode,去除哪些,合理的配置能够减少很多不必要的麻烦。
今天在线上发现一个问题,挺有意思的,这里简单记录下。 问题的背景是查看一个Grafana监控的时候,发现监控没有数据了:
前几天,有位童鞋咨询我一个问题,如果表新增一个not null字段、不指定default,那么这个操作能成功吗?当时我不假思索地回答会直接报错,结果当然就是被啪啪打脸。后续回顾这个问题,做出此错误回答的原因有那么几个:一是not null和不指定default两者本身是冲突的;二是Oracle相关经验告诉我会报错;三是MySQL开发规范一般要求指定default;接下来我们详细记录一下这个案例。
explicit_defaults_for_timestamp 系统变量决定MySQL服务端对timestamp列中的默认值和NULL值的不同处理方法。此变量自MySQL 5.6.6 版本引入,分为全局级别和会话级别,可动态更新,默认值为OFF。本文主要介绍该参数打开和关闭情况下对timestamp的影响 。
不知道大家是否有过维护的数据库表业务数据被人或者因为程序bug导致全表更新,全表删除的痛苦经历,恢复业务数据的过程真的太痛苦了,尤其与交易和钱相关的数据,必须恢复成和原来一模一样,那能不能在数据库层面架起最后一道安全堡垒,拒绝全表更新,全表删除的非法操作呢,答案是有的,在mysql中sql_safe_updates可以完美解决这个问题;
在创建完数据库和表之后,需要插入模拟数据。在插入的过程中就碰到了问题,此文作为记录解决字符集的问题
在使用druid的时候难免会有一些问题,之前就发现了这个问题。但是作者发现其对业务没有影响,所以打算拖一拖。主要是不影响业务,就会会频繁的报错。今天组内其他同学的业务的报错,然后也没定位到问题,最后反馈了druid连接池报错的问题,也就是上述作者说的对业务影响不大的那个报错,至于同事反映的真正的问题是什么,现在还没有复现。现在还是主要将druid的问题解决了再说吧,druid报错如下。
在使用pt-table-checksum 校验主从的过程的时候,在创建dsns 表之后,往dsns表写入从库dsn信息的时候,从库的SQL线程就挂了,报错信息如下
事情是这样的,上周五下班前通过自动化工具执行开发人员事先写好的 SQL 时,自动化工具执行失败了,于是手动去生产环境执行,就发生了错误 “ERROR 1292 (22007): Truncated incorrect DOUBLE value”,截断不正确的 DOUBLE 值,难道是数据类型长度不够,接下来我们查看一下表结构。
信安之路的小白成长阶段目前处于 SQL 的基础学习阶段,在每一个学习阶段都会分享一些参考资料给大家,即使大家未能成为学习的主力,但是也希望更多想要参与学习的同学跟着这个学习计划一直前行,详细情况请看公众号菜单中间一栏的成长计划。
MySQL主键与非主键设置自增问题: ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key 开始: MySQL [liangcb]> show create table a5; +-------+---------------------------------------------------------------------
ProxySQL整合MGR提供高可用,是我们知数堂课程中提供一个MySQL高可用的解决方案,架构如下:
unique、 primary key、not null、default相对简单,本篇文章不做记录。
刚刚在看<<深入浅出MySQL>>一书的”ENUM类型”一节, 以下面的代码举例,
Column count doesn't match value count at row 1; Column count doesn't match value count at row 1;
如 create table 表名 (name unique,age)。限制的就是name的唯一性。
create table relationship (id int(4) primary key,name char(10)
先说结论,mysql 中的 varchar 是有最大长度限制的,这个值是 65535 个字节。
可以看到是一条更新语句,UPDATE infosys_login. business_login_user_auth_info where XXX ... @1=272998577393905664对应的是库中的id,去从库中查看时,这条记录确实是被开发人员手动删除了的,从而造成了1032错误。
SQL注入漏洞为PHP研发人员所熟知,它是所有漏洞类型中危害最严重的漏洞之一。SQL注入漏洞,主要是通过伪造客户端请求,把SQL命令提交到服务端进行非法请求的操作,最终达到欺骗服务器从而执行恶意的SQL命令。
前几天读了一篇文章《故障分析 | MySQL 迁移后 timestamp 列 cannot be null》,没想到这两天就碰到了相近的问题。
同事问了个 MySQL 的问题,现象上确实诡异。大致意思是 SELECT 表的数据,WHERE 条件是 "a=0",其中 a 字段是 VARCHAR 类型,该字段存在 NULL 以及包含字符的记录,但是并无 "0" 的记录,然后执行 SQL 返回的记录恰恰就是所有包含字符的记录。
笔者在刚开始学习数据库的时候,没少走弯路。经常会遇到各种稀奇古怪的 error 信息,遇到报错会很慌张,急需一个解决问题的办法。跟无头苍蝇一样,会不加思索地把错误粘到百度上,希望赶紧查找一下有没有好的问题处理方法。我想上述这个应该是刚从事数据库的小白都会遇到的窘境。 今天就给大家列举 MySQL 数据库中最经典的十大错误案例,并附有处理问题的解决思路和方法。希望能给刚入行或数据库爱好者一些帮助,今后再遇到任何报错,我们都可以很淡定地去处理。 学习任何一门技术的同时,其实就是自我修炼的过程。沉下心,尝试去
前几天读了一篇文章《故障分析 | MySQL 迁移后 timestamp 列 cannot be null》,没想到这两天就碰到了很相近的问题。
MySQL 中字符串既可以用单引号也可以用双引号,而 Oracle 中只能用单引号。
但是在实际开发应用中对于词库的灵活度的要求是远远不够的,IK分词器虽然配置文件中能添加扩展词库,但是需要重启ES
忙活了一天,晚上抽空做了几个关于索引和主键的小测试,记录一下,希望对大家有帮助。(所有测试都是在MySQL5.7的环境下测试的)
问题如标题所示,在开发过程的时候,需要创建一张表,从另一个环境导出的表结构sql文件,在我电脑上导入,遇到该报错
今天业务反馈了一个问题,modify_time字段不允许为null,而业务反馈这个字段是设置了默认值的,具体的业务报错信息如下所示:
周五晚上和朋友一起去外面吃饭,本来想着不加班早点回家过周末,谁又能想到突然就接到一个电话,mysqldump逻辑备份导入时报错,具体错误为“ERROR 3144 (22032): Cannot create a JSON value from a string with CHARACTER SET 'binary'.”
MySQL的sql_mode参数会影响对日期时间的处理方式。如果NO_ZERO_DATE或者STRICT_TRANS_TABLES模式被启用,那么默认值'0000-00-00 00:00:00'将被认为是无效的。
在这些年的MySQL升级需求中,让我大跌眼镜的一个现象是:驱动业务从MySQL 5.5升级到MySQL 5.7的很大一个因素是因为JSON这个特性。
该错误表明views.py中没有return一个返回值给前端。 解决办法:检查 return HttpResponse()是否错位或者是否缺失。
Too many connections(连接数过多,导致连接不上数据库,业务无法正常进行)
1、该约束条件的意思是在向表中插入数据的时候,有约定条件not null的列值不能为空,否则会报错。
正文之前 昨天终于把我苦命的毕业设计审批表送出去了。结果暑假的生产实习开始对账,我这儿又开始忙活了,还要签字,我有时候都在想要不全班代签一遍算了。不然真的揪心啊!mmp,就学校这些东西破事多!!虽然合
在MySQL中,表名存放在information_schema数据库下tables表table_name字段中、查表名我们主要用到的是TABLES表
Too many connections(连接数过多,导致连接不上数据库,业务无法正常进行)
在开发项目时,因为有一些旧系统的基础数据需要提前导入,所以我在导入时做了批量导入操作 ,但是因为MySQL中的一次可接受的SQL语句大小受限制所以我每次批量虽然只有500条,但依然无法插入,这个时候代码报错如下:
前面一篇文章《案例| +1s导致的故障》介绍了因为开发同学对datetime值+1s的操作导致的问题。我们在复盘的时候讨论设置sql_mode为严格模式可行性。于是有了此文。
小伙伴们好,我是阿沐!最近呢,正筹备上云工作,需要考虑到很多场景;比如mongo、mysql、redis、splinx等等迁移工作,这就涉及到版本兼容问题;在迁移之前,阿沐迁移了mysql到其他容器中,发现迁移机器mysql版本号比较高5.7以上,就出现了sql语句兼容问题。所以趁机会整理了很久以前遇到的各种mysql常见问题跟掘金小伙伴们分享下。小伙伴们可以收藏起来哦,遇到常规错误可以快速查询解决~~~
general_log指的是日志保存状态,一共有两个值(ON/OFF)ON代表开启 OFF代表关闭。
领取专属 10元无门槛券
手把手带您无忧上云