AutoCreate

MySQL5.7升级到8.0过程详解

﹥>﹥吖頭↗ 提交于 2020-08-06 13:28:51
前言: 不知不觉,MySQL8.0已经发布好多个GA小版本了。目前互联网上也有很多关于MySQL8.0的内容了,MySQL8.0版本基本已到稳定期,相信很多小伙伴已经在接触8.0了。本篇文章主要介绍从5.7升级到8.0版本的过程及注意事项,有想做版本升级的小伙伴可以参考下。 1.升级前准备及注意事项 首先,我们要大概了解下MySQL5.7和8.0有哪些不同,参考官方文档和其他网友文章,概括总结出MySQL8.0以下几点新特性: 默认字符集由latin1变为utf8mb4。 MyISAM系统表全部换成InnoDB表。 JSON特性增强。 支持不可见索引,支持直方图。 sql_mode参数默认值变化。 默认密码策略变更。 新增角色管理。 支持窗口函数,支持Hash join。 根据版本变化及官方升级教程,列举出以下几点注意事项: 注意字符集设置。为了避免新旧对象字符集不一致的情况,可以在配置文件将字符集和校验规则设置为旧版本的字符集和比较规则。 密码认证插件变更。为了避免连接问题,可以仍采用5.7的mysql_native_password认证插件。 sql_mode支持问题。8.0版本sql_mode不支持NO_AUTO_CREATE_USER,要避免配置的sql_mode中带有NO_AUTO_CREATE_USER。 是否需要手动升级系统表。在MySQL 8.0.16版本之前

MySQL自增列(AUTO_INCREMENT)相关知识点总结

我的未来我决定 提交于 2020-05-05 13:34:14
MySQL的自增列(AUTO_INCREMENT)和其它数据库的自增列对比,有很多特性和不同点(甚至不同存储引擎、不同版本也有一些不同的特性),让人感觉有点稍微复杂。下面我们从一些测试开始,来认识、了解一下这方面的特殊知识点: 自增列持久化问题 如果一个表拥有自增列,当前最大自增列值为9, 删除了自增列6、7、8、9的记录,重启MySQL服务后,再往表里面插入数据,自增列的值为6还是10呢? 如果表的存储引擎为MyISAM呢,又会是什么情况? 下面实验环境为MySQL 5.7.21 mysql> drop table if exists test; Query OK, 0 rows affected (0.08 sec) mysql> create table test(id int auto_increment primary key, name varchar(32)) ENGINE=InnoDB; Query OK, 0 rows affected (0.02 sec) mysql> insert into test(name) -> select 'kkk1' from dual union all -> select 'kkk2' from dual union all -> select 'kkk3' from dual union all -> select

SpringCloud Stream使用案例

孤者浪人 提交于 2020-05-04 06:47:09
官方定义 Spring Cloud Stream 是一个构建消息驱动微服务的框架。   应用程序通过 inputs 或者 outputs 来与 Spring Cloud Stream 中binder 交互,通过我们配置来 binding ,而 Spring Cloud Stream 的 binder 负责与消息中间件交互。所以,我们只需要搞清楚如何与 Spring Cloud Stream 交互就可以方便使用消息驱动的方式。 通过使用Spring Integration来连接消息代理中间件以实现消息事件驱动。Spring Cloud Stream 为一些供应商的消息中间件产品提供了个性化的自动化配置实现,引用了发布-订阅、消费组、分区的三个核心概念。目前仅支持RabbitMQ、Kafka。 这里还要讲解一下什么是Spring Integration ? Integration 集成 企业应用集成(EAI)是集成应用之间数据和服务的一种应用技术。四种集成风格:   1.文件传输:两个系统生成文件,文件的有效负载就是由另一个系统处理的消息。该类风格的例子之一是针对文件轮询目录或FTP目录,并处理该文件。   2.共享数据库:两个系统查询同一个数据库以获取要传递的数据。一个例子是你部署了两个EAR应用,它们的实体类(JPA、Hibernate等)共用同一个表。   3.远程过程调用

gorm系列-model

孤街醉人 提交于 2020-04-28 17:01:44
目录 Gorm Model 模型定义示例 结构体标记(tags) 支持的结构体标记(Struct tags) 关联相关标记(tags) 例子 主键、表名、列名的约定 主键(Primary Key) 表名(Table name) 列名 时间戳跟踪 Gorm Model 在使用ORM工具时,通常我们需要在代码中定义模型(Models)与数据库中的数据表进行映射,在GORM中模型(Models)通常是正常定义的结构体、基本的go类型或它们的指针。同时也支持sql.Scanner(扫描)及driver.Valuer(驱动)接口(interfaces) 为了方便模型定义,GORM内置了一个gorm.Model结构体。gorm.Model是一个包含了ID, CreatedAt, UpdatedAt, DeletedAt四个字段的Golang结构体。 // gorm.Model 定义 type Model struct { ID uint `gorm:"primary_key"` CreatedAt time.Time UpdatedAt time.Time DeletedAt *time.Time } 可以将它嵌入到自己的模型中: // 将 `ID`, `CreatedAt`, `UpdatedAt`, `DeletedAt`字段注入到`User`模型中 type User struct {

Autel MaxiTPMS TS601 Wireless TPMS Sensor Reset Relearn Activate Programming Tool

余生颓废 提交于 2020-04-26 14:59:35
Why Choose Autel TPMS TS601? MaxiTPMS TS601 is a TPMS tool with highest performance in the world. It’s the best solution for tire shops and automotive workshops to perform various TPMS services! * Capable of fully diagnosing TPMS problems as well as activating TPMS sensors and reading/ writing sensor ID to the vehicle ECU with the included obdi interface. Additional Basic OBD2 code reader function * Reads, records and plays back Autel TPMS Sensors TPMS Live data including tire pressure, signal status, temperature, battery status and more * Easy to use with intuitive navigation and step-by-step

sql,nigix,apache

坚强是说给别人听的谎言 提交于 2020-04-21 20:57:36
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 加到my.ini里后重启! nigix: if ( !-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; break; }//隐藏入口文件 Apache: <IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L] </IfModule> 来源: oschina 链接: https://my.oschina.net/u/4225107/blog/3290868

ff4j 一些核心概念

非 Y 不嫁゛ 提交于 2020-04-21 16:59:27
了解ff4j 的一些核心概念我们就可以更好的学习以及使用ff4j,以下是一些学习,整理 Feature Feature 主要是用表示应用的一个功能,通过一个唯一的id标示(uid),主要目的是在运行时可以按需启用以及禁用 特性,FF4j 添加了一些属性(比如描述,可选的grouoname)访问控制列表,以及一些flipping 策略,同时我们也可以 添加自己的自定义属性 参考代码使用 // Simplest declaration Feature f1 = new Feature( "f1"); ​ // Declare with description and initial state Feature f2 = new Feature( "f2", false, "sample description"); ​ // Illustrate ACL & Group Set < String > permission = new HashSet < String >(); permission. add( "BETA-TESTER"); permission. add( "VIP"); Feature f3 = new Feature( "f3", false, "sample description", "GROUP_1", permission); ​ // Custom

YIi批量插入

与世无争的帅哥 提交于 2020-04-21 15:36:24
第一种方案 $model=new User(); foreach($data as $attributes){ $_model=clone $model; $_model->setAttributes($attributes); $_model->save(); } 第二种方案 $model=new User(); foreach($data as $attributes){ $model->isNewRecord=true; $model->setAttributes($attributes); $model->save()&&$model->id=0; } Yii2.0批量插入: (推荐使用这种方案) Yii::$app->db->createCommand()->batchInsert(UserModel::tableName(), ['user_id','username'], [ ['1','test1'], ['2','test2'], ['3','test3'], ])->execute(); 如果封装的sql数据过多 ERROR 1406 : Data too long for column 解决办法 解决方案 1 在my.ini里找到 sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_Create_USER,NO_ENGINE

MySQL的sql_mode解析与设置

Deadly 提交于 2020-04-17 07:48:20
【推荐阅读】微服务还能火多久?>>> 参考地址: http://blog.csdn.net/ccccalculator/article/details/70432123 因为在MySQL中使用group by 是总是出现1055的错误,这就导致了必须去查看是什么原因了,查询了相关的资料,现在将笔记记录下来,以便后面可以参考使用: sql_mode:简而言之就是:它定义了你MySQL应该支持的sql语法,对数据的校验等等 select @@sql_mode:使用该命令我们可以查看我们当前数据库的sql_mode 1 2 3 4 5 6 7 mysql> select @@sql_mode; +-------------------------------------------------------------------------------------------------------------------------------------------+ | @@sql_mode | +-------------------------------------------------------------------------------------------------------------------------------------------+ |

Mysql的sql_mode模式

孤街醉人 提交于 2020-02-29 08:55:33
sql_mode 是一个很容易被忽视的配置,宽松模式下可能会被输入一些非准确数据,所以生产环境下会要求为严格模式,为了保持生产环境和开发环境,测试环境一致性,我们开发环境和测试环境也要配置成为严格模式。 sql_mode常用值 ONLY_FULL_GROUP_BY:在分组查询语句中如果一个select中的列没有在group by中出现,则该语句是不合法的。 NO_AUTO_VALUE_ON_ZERO:在默认情况下自增长列在插入0或NULL时会自动插入下一个自增长值。当设置该模式情况下,插入0时不会进行自增长依然插入0值。 STRICT_TRANS_TABLES:对事务表进行限制,当一个数据不能插入到事务表中时中断当前操作。对非实物表不做限制。 NO_ZERO_IN_DATE:只要日期的月和日中含有0值都报错,但是‘0000-00-00’除外。 NO_ZERO_DATE:只有‘0000-00-00’报错。 ERROR_FOR_DIVISION_BY_ZERO:在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。如果非该模式下被0除时mysql返回NULL。 NO_AUTO_CREATE_USER:禁止创建密码为空的用户。 NO_ENGINE_SUBSTITUTION:如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常