MySQL::SQL_MODE】的更多相关文章

1. MySQL 莫名变成了 Strict SQL Mode 最近测试组那边反应数据库部分写入失败,app层提示是插入成功,但表里面里面没有产生数据,而两个写入操作的另外一个表有数据.因为 insert 失败在数据库层面是看不出来的,于是找php的同事看下错误信息: [Err] 1364 - Field `f_company_id` doesn't have a default value 很明显2个 insert 操作,第一条成功,第二条失败了,但因为没有控制在一个事务当中,导致app里面依然…
查看mysql sql_mode SELECT @@GLOBAL.sql_mode; 修改mysql sql_mode: set global sql_mode=''; 修改my.ini: sql_mode=NO_ENGINE_SUBSTITUTION…
原文:docker 下修改 mysql sql_mode和配置文件 打开PowerShell 首先创建mysql容器,这里我们指定使用mysql5.7的版本 docker run -d -p 3306:3306 --name mysql-docker -e MYSQL_ROOT_PASSWORD=root mysql:5.7 创建成功,查看一下运行状态 docker ps   可以看到我们的容器正在运行中,现在进入容器,查看一下配置文件   docker exec -it mysql-docke…
1. MySQL莫名变成了 Strict SQL Mode 最近测试组那边反应数据库部分写入失败,app层提示是插入成功,但表里面里面没有产生数据,而两个写入操作的另外一个表有数据.因为 insert 失败在数据库层面是看不出来的,于是找php的同事看下错误信息: 1 [Err] 1364 - Field `f_company_id` doesn't have a default value 很明显2个 insert 操作,第一条成功,第二条失败了,但因为没有控制在一个事务当中,导致app里面依…
转自:https://segmentfault.com/a/1190000005936172 1. MySQL 莫名变成了 Strict SQL Mode 最近测试组那边反应数据库部分写入失败,app层提示是插入成功,但表里面里面没有产生数据,而两个写入操作的另外一个表有数据.因为 insert 失败在数据库层面是看不出来的,于是找php的同事看下错误信息: [Err] 1364 - Field `f_company_id` doesn't have a default value 很明显2个…
1.1.   SQL_MODE设置 在生产环境中强烈建议将这个值设置为严格模式,这样有些问题可以在数据库的设计和开发阶段就能实现,而如果在生产环境下运行数据库后发现这类问题,那么修改的代价将变得十分巨大.此外正确地设置sql_mode还可以做一些约束(constraint)检查的工作. 对于sql_mode的设置,可以在配置文件.客户端.当前会话或者全局会话中设置. 查看sql_mode的设置情况: mysql>select @@global.sql_mode; +---------------…
SQL_MODE可能是比较容易让开发人员和DBA忽略的一个变量,默认为空.SQL_MODE的设置其实是比较冒险的一种设置,因为在这种设置下可以允许一些非法操作,比如可以将NULL插入NOT NULL的字段中,也可以插入一些非法日期,如“2012-12-32”.因此在生产环境中强烈建议开发人员将这个值设为严格模式,这样有些问题可以在数据库的设计和开发阶段就能发现,而如果在生产环境下运行数据库后发现这类问题,那么修改的代价将变得十分巨大.此外,正确地设置SQL_MODE还可以做一些约束(Constr…
知识储备: 1.mysql 有众多的存储引擎,然而只有一个默认的存储引擎,通常来说它是innodb 2.mysql 可以通过sql_mode 来控制mysql 数据库的行为,今天我们要讲的就是no_engine_substitution 3.no_engine_subtitution的作用:mysql 在create table 时可以指定engine子句:这个engine子句用于指定表的存储引擎,那么问题就来了.  如果我把引擎指定成一个并不存在的引擎!这个时候mysql可以有两种行为供选择…
1. MySQL莫名变成了 Strict SQL Mode 最近测试组那边反应数据库部分写入失败,app层提示是插入成功,但表里面里面没有产生数据,而两个写入操作的另外一个表有数据.因为 insert 失败在数据库层面是看不出来的,于是找php的同事看下错误信息: 1 [Err] 1364 - Field `f_company_id` doesn't have a default value 很明显2个 insert 操作,第一条成功,第二条失败了,但因为没有控制在一个事务当中,导致app里面依…
实测,解决问题; 1.错误提示: 2.检查参数设置: 3.mysql的配置文件my.cnf里面可以修改, 但是,改完以后,你检查所有的参数设置都是对的,就是运行不了.怎么办?怎么办? 4.如果还是不行而且确定修改了.那这个问题就麻烦了.我是在存储过程里面遇到问题. 在mysql里面调用,没有问题.但是在代码里面调用了不行,检查,检查 show create procedure aaa; 然后发现了什么? 正常的,对的: 而出问题的: 问题总结: 在初始的时候,mysql的配置文件没有修改 mys…
今天在测试服务器上突然出现了这么一个MySQL的问题,同样的代码正式服没有问题,那肯定就是出在了配置上,查了一下原因才明白原来是数据库版本为5.7以上的版本, 默认是开启了 only_full_group_by 模式的,但开启这个模式后,原先的 group by 语句就报错, 查询MySQL版本可以在命令行模式刚连接上数据库时就能看到,或者在进入mysql后使用命令:status查看版本号, 既然是版本的问题,那就查询一下配置看看具体的情况,命令行连接上数据库,再输入命令: select @@s…
往数据库里创建新表的时候报错: [Err] 1067 - Invalid default value for 'updateTime' DROP TABLE IF EXISTS `passwd_reset`; CREATE TABLE `passwd_reset` ( `id` int(11) NOT NULL AUTO_INCREMENT, `staffId` int(11) DEFAULT NULL, `toEmail` varchar(50) DEFAULT NULL, `token` v…
.一般默认情况下sql_mode默认为空,也就是不严格的sql检查 .如果sql_mode为空的情况下,测试: )); //定义一个name字段长度为定长2的tt3表 insert into tt3 values ('wo'); //正常插入,无措 insert into tt3 values ('woshi'); //正常插入,但值已被截取成了“wo” 修改sql_mode为严格模式: set session sql_mode = 'STRICT_TRANS_TABLES'; (): Data…
视图查询的时候本地数据库报错: 解决办法: 1.查看sql_mode select @@global.sql_mode STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 2.去掉ONLY_FULL_GROUP_BY,重置: set @@global.sql_mode ='STRICT_TRANS_TABLES,…
执行代码 set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'; set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';…
http://blog.itpub.net/29773961/viewspace-1813501/…
一.基本概念mysql5.1版本开始引进event概念.event既“时间触发器”,与triggers的事件触发不同,event类似与linux crontab计划任务,用于时间触发.通过单独或调用存储过程使用,在某一特定的时间点,触发相关的SQL语句或存储过程. 二.适用范围对于每隔一段时间就有固定需求的操作,如创建表,删除数据等操作,可以使用event来处理. 例如:使用event在每月的1日凌晨1点自动创建下个月需要使用的三张表. 三.使用权限单独使用event调用SQL语句时,查看和创建…
001 查看版本 mysql --version mysql > select version(); mysql > status; 002 新建MySQL用户.授权 insert into mysql.user(Host,User,Password) values("localhost","username",password("yourpassword")); GRANT ALL PRIVILEGES ON *.* TO 'use…
Connector/Python Connection Arguments A connection with the MySQL server can be established using either the mysql.connector.connect() function or the mysql.connector.MySQLConnection() class: Press CTRL+C to copy   cnx = mysql.connector.connect(user=…
1.软件下载 https://dev.mysql.com/downloads/file/?id=479096 免编译二进制包 mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz 2.解压和迁移 tar -xvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz mv mysql-5.6.21-linux-glibc2.5-x86_64 /usr/local/mysql 3.关闭iptables 临时关闭:service iptab…
一.下载MySQL二进制软件包 下载连接:MYSQ安装包下载 官网MySQL有四个版本:GA版.DMR版.RC版.Beta版.一般生产和测试环境使用GA版(常规可用的版本,经过bug修复测试) 二.安装前系统环境检测 1.SELinux和系统防火墙iptables需要关闭 2.I/O调度系统默认是cfq模式,强烈建议使用deadline模式 cat /sys/block/sda/queue/scheduler #cfq完全公平队列:noop电梯式调度:deadline截止时间调度 3.swap分…
1.MySQL多实例介绍 1.1.什么是MySQL多实例 MySQL多实例就是在一台机器上开启多个不同的服务端口(如:3306,3307),运行多个MySQL服务进程,通过不同的socket监听不同的服务端口来提供各自的服务:: 1.2.MySQL多实例的特点有以下几点 1:有效利用服务器资源,当单个服务器资源有剩余时,可以充分利用剩余的资源提供更多的服务. 2:节约服务器资源 3:资源互相抢占问题,当某个服务实例服务并发很高时或者开启慢查询时,会消耗更多的内存.CPU.磁盘IO资源,导致服务器…
Docker是一种新兴的虚拟化技术,能够一定程度上的代替传统虚拟机.下图是容器跟虚拟机的对比 对docker有个大致了解,学习docker断断续续,虽说学习不能急于求成,但断断续续学的话,浪费的碎片化时间也是不少的. 学习docker如果不愿意看文章可以看慕课网的一个免费的视频讲解,入门完全ok. 可以在docker hub上注册个账号,构建自己的镜像放到hub上,以便复用 docker hub地址 我的地址 慕课网学习地址 年前给公司的同事培训过一次学习mysql,在阿里云服务器上使用dock…
[client] user = root --用户 password = 1111aaA_ -- 密码 [mysql] prompt = [\\u@\\p][\\d]>\\_ -- cmd控制台前显示: node1 [localhost] {sa} (mysql) 而不是就是 mysql> no-auto-rehash --开启命令自动补全功能 [mysqld_safe] malloc-lib=tcmalloc --合适的内存分配算法tcmalloc,是谷歌提供的内存分配管理模块 [mysql…
mysql多实例安装有两种形式: 同一数据库版本的多实例安装. 不同数据库版本的多实例安装. 同一数据库的多实例安装: 在同一台机器上安装4台mysql数据库实例. 从官网下载MySQL5.6版本的二进制免编译安装包,地址如下MySQL5.6下载 和安装一台mysql实例一样,首先要创建mysql用户,创建datadir目录. [root@test2 mysql]# useradd -M mysql #创建dataidr目录,因为要安装4个MySQL数据库实例,需要创建4个datadir目录,如…
最近一段运行良好的代码突然无法运行,报错: MySQL said: Documentation 1690 - BIGINT UNSIGNED value is out of range in 经过查询,发现这个错误的原因是两个时间字段进行减法运算时,如果有一个时间为0000-00-00时造成的,根本原因是因为这样减法的结果会超过Mysql数值字段的范围,从而触发1690报错. ERROR 1690 Out-of-Range 当Mysql中的数字字段存储了一个超过允许范围的数字时,会触发1690…
总结之:CentOS 6.5 MySQL数据库的基础以及深入详解 原文:http://tanxw.blog.51cto.com/4309543/1395539 前言 早期MySQL AB公司在2009年10亿美元卖给了sun公司,然而不幸的是sun在2010年被Oracle收购了,而sun被Oracle收购的时候,而很多人都知道Oracle都是把竞争对手收下来打入冷宫,不再销售,这是它一惯的手法了,虽然承诺5年内不会对MySQL下手,但5年很快就过去了. MySQL的原作者在sun被Oracle…
数据库初始化 默认情况下,数据已经初始化好,数据可参见默认配置文件/etc/my.cnf 在其他位置重新初始化MySQL数据库: basedir是mysql的安装根目录,ldata是数据初始化的目录 mysql_install_db --basedir=/ --ldata=./data 相关提示: To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your…
经常应为系统硬件短缺,导致需要在同一台硬件服务器上面安装多个mysql实例.之前的文章四·安装mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz(基于Centos7源码安装) 1.在mysql用户目录下新建mysql3306,mysql3307,mysql3308三个文件夹,并分别在这三个文件夹下建立data,log,tmp文件夹,总体目录结构如下 /home/mysql ├── mysql3306 ├──data ├──log ├──tmp ├── mysql3…
windows:my.ini [mysqld] # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. # innodb_buffer_pool_size = 128M # Remove leading # to turn on a very impo…