数据库
hanchufeng2020
专注于物联网解决方案,对java对接物联网硬件设备有独到的见解和实战经验
个人CSDN 课程主页 https://edu.csdn.net/lecturer/5684 ,有需要了解的朋友可以点击进入查看
展开
-
mysql 主从同步出错快速解决方法
参考:https://www.cnblogs.com/wjoyxt/p/5385862.html参考:https://blog.csdn.net/keil_wang/article/details/89399603参考:https://www.cnblogs.com/deny/p/9984603.html (我按这个实施成功) Mysql主从同步集群在生成环境使用过程中,如果主从服务器之间网络通信条件差或者数据库数据量非常大,容易导致MYSQL主从同步延迟。 MYSQ...原创 2021-04-15 17:39:53 · 1465 阅读 · 0 评论 -
MySQL/Oracle数据库优化总结(非常全面)
MySQL数据库优化的八种方式(经典必看)引言: 关于数据库优化,网上有不少资料和方法,但是不少质量参差不齐,有些总结的不够到位,内容冗杂 偶尔发现了这篇文章,总结得很经典,文章流量也很大,所以拿到自己的总结文集中,积累优质文章,提升个人能力,希望对大家今后开发中也有帮助 1、选取最适用的字段属性MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设..转载 2020-12-17 16:06:50 · 398 阅读 · 0 评论 -
springboot中 quartz 的定时器如何保证在集群环境下不重复执行 SpringBoot利用redis分布式锁解决集群下定时任务重复执行
最近在给服务器搭建集群nginx的时候遇到了一个问题,mysql主从也搭建好了。其中有一个定时任务的问题,由于是主从两台机器,程序需要用nginx做反向代理,两台服务器都需要部署相同的程序,这样的话,每台服务器都有可能执行定时任务,导致定时任务重复执行,出现错乱的脏数据。研究了好久终于找到 了解决方案。这个问题对于新手来说确实是一个挑战。不废话直接入正题。解决方案是利用redis 的分布式锁来加锁。具体的方案入下:1. springboot的 yml文件需要配置redis 相关信息:..原创 2020-11-11 16:45:37 · 1677 阅读 · 0 评论 -
MySQL主从同步配置 经过实践证明
注意:本文是在乌班图和Windows10环境下配置,Centos与乌班图略有不同,就是Centos的MySQL配置文件路径为/etc/my.cnf,其他操作一致1. 主从同步的定义主从同步使得数据可以从一个数据库服务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave)。因为复制是异步进行的,所以从服务器不需要一直连接着主服务器,从服务器甚至可以通过拨号断断续续地连接主服务器。通过配置文件,可以指定复制所有的数据库,某个数据库,甚至是.原创 2020-11-03 17:05:04 · 109 阅读 · 0 评论 -
springboot 链接mysql Message from server: “Host ‘xxx‘ is not allowed to connect to this MySQL se
错误原因是由于需要访问的mysql数据库 设置的是localhost访问,没有开通ip访问。需要按照如下设置。1、先用localhost方式连接到MySQL数据库,然后使用MySQL自带的数据库mysql; use mysql;2、执行:select host from user where user = 'root'; 发现,host的值就是localhost。 所以将它的值改掉:update user set host='%' where user =...原创 2020-11-03 15:51:06 · 469 阅读 · 0 评论 -
windows 下redis 如何配置ip访问,快速简单的方法
最近在给项目做一个项目用到了nginx 反向代理,需要做session同步问题,找了好几种方法,觉得redis做缓存通过还是比较靠谱,在搭建redis之后,不能使用ip访问,所以查找了好几天,网上的解决方案每一个使用了,最终找了一个比较简单快捷的方法。打开这个文档这个bind原来是 127.0.0.1 改为 0.0.0.0 重启即可。是不是很简单,如果帮到了您,记得点赞分享啊...原创 2020-11-03 11:13:40 · 2155 阅读 · 0 评论 -
java window 下mysql 数据库备份 程序
由于前段时间服务器被黑,数据库被删除,连连出现了好几次,所以考虑备份情况,备份到底是用操作系统的执行计划呢还是用咱们的java程序呢,最后考虑的备份的文件方便管理,所以用java实现,并且将备份的记录和文件信息保存到表中所以提供了一下程序, String bakfile = "c:/bak.sql"; String path1 ="C:\\mysql\\mysqldump.exe"; String cmdStr = "cmd /c "+pa...原创 2020-10-30 15:44:03 · 234 阅读 · 1 评论 -
SQLException: Access denied for user ‘joecc‘@‘localhost‘ (using password: YES) 解决方法如何解决
一般出现如下的问题,大多数都是由于密码不对,或者用户不对,确定一下用户名和密码正确性今天在学习spring框架配置druid的时候碰到了问题在网上看了几种方法,这里整合一下一、配置文件中加入useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true...原创 2020-10-26 16:39:30 · 149 阅读 · 0 评论 -
Java 数据库树形查询生成菜单结构
Java 数据库树形查询JAVA从数据库读取菜单,递归生成菜单树。定义菜单类public class Menu { // 菜单id private String id; // 菜单名称 private String name; // 父菜单id private String parentId; // 菜单url private String url; // 菜单图标 private String icon;原创 2020-10-22 09:36:14 · 415 阅读 · 0 评论 -
MySQL 获取两个时间之间相差的分钟数 及 常用时间函数
最近在做一个物联网项目的定时任务,数据库要根据时间来判断如果数据库任务的下次执行时间和当前时间相比小于10分钟就执行打开和关闭设备。取得相隔秒数SELECT UNIX_TIMESTAMP('2012-06-09 00:10:11')-UNIX_TIMESTAMP('2012-06-09 00:09:12')取得相隔分钟数SELECT round((UNIX_TIMESTAMP('2012-06-09 00:10:11')-UNIX_TIMESTAMP('2012-06-09 00:09.原创 2020-10-21 15:11:13 · 4478 阅读 · 0 评论 -
MySQL多表创建关联及查询及操作
外键# 现在有两张表“分类表”和“商品表”,为了表明商品属于哪个类别,通常情况下,我们将在商品上添加一列,用来存放分类的cid信息,此列成为外键。 此时,分类表 category 称作主表,cid 成为主键。商品表 products 成为从表,category_id成为外键。 通过主表和从表的外键描述主外键的关系,呈现的就是一对多的关系。外键特点# 1.从表外键的值是对主键的引用。 2.从表外键类型必须与主表主键类型一致。声明外键约束 ...原创 2020-10-21 10:47:15 · 1205 阅读 · 0 评论 -
项目要实现多数据源动态切换,咋搞?
在做项目的时候,几乎都会用到数据库,很多时候就只连一个数据库,但是有时候我们需要一个项目操作多个数据库,不同的业务功能产生的数据存到不同的数据库,那怎么来实现数据源的动态、灵活的切换呢?今天我们就来实现这个功能。回到顶部前期准备工作我们需要有一台联网的电脑(用于maven自动下载依赖),并且电脑安装JDK 8、IDEA、MySQL数据库、maven,首先创建一个springboot项目(SSM也行)。springboot版本和SSM版本的代码都已经放到码云托管,表结构SQL也有,感兴趣的可...原创 2020-10-19 15:54:13 · 900 阅读 · 0 评论 -
15000 字的 2020 年最全的 mysql 操作大全 SQL 语句大全
一、基础1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server---创建 备份数据的deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'---开始 备份BACKUP DATABASE pubs TO testBack4、说明:...原创 2020-10-15 10:40:22 · 222 阅读 · 0 评论 -
windows 64位下 mysql安装教程详解
直接上干货 先去官网下载点击的MySQL的下载 下载完成后解压解压完是这个样子 配置初始化的my.ini文件的文件 解压后的目录并没有的my.ini文件,没关系可以自行创建在安装根目录下添加的my.ini(新建文本文件,将文件类型改为的.ini),写入基本配置: [mysqld] # 设置3306端口 port=3306 # 设置mysql的安装目录 basedir=C:\Program Files...原创 2020-10-14 23:11:17 · 1675 阅读 · 4 评论 -
MySQL从数据库中删除表中所有数据
方法一:使用 delete from [表名] 生成日志方法二:使用 truncate table [表名] 无日志生成两种方式删除后再插入数据,第一条id的值不一样方法一:方法二:原创 2020-10-13 14:09:55 · 465 阅读 · 0 评论 -
一次性删除Mysql数据库中所有表的数据,保留表结构
常见的删除数据库表中数据的方法是通过delete或者truncate的方法进行删除操作,如果删除的是表中某一条或者部分数据的话适合用delete操作进行删除,如果要删除表中所有的数据的话,适合是同truncate进行删除操作。 那么问题来了,如果某一个数据库中有很多张表,此时我想将该数据库中所有表中的数据全部删掉,该如何操作呢? 解决该问题主要分两种情况,如果不需要保留数据库中所有表的结构,那么答案很简单,执行命令drop database 数据库名 即可达到目的。...原创 2020-10-13 14:08:42 · 4397 阅读 · 0 评论 -
group by和order by的用法和区别
前一段时间的面试,问道这个问题,不太清楚了,感觉有必要来总结一下。话不多说,直接开始吧!一、order by的用法使用order by,一般是用来,依照查询结果的某一列(或多列)属性,进行排序(升序:ASC;降序:DESC;默认为升序)。当排序列含空值时:ASC:排序列为空值的元组最后显示。DESC:排序列为空值的元组最先显示。为了好记忆,我的理解是,可以把null值看做无穷大,因为不知道具体为多少。然后去考虑排序,asc升序null肯定在最后,而desc降序,null肯定在最前面。原创 2020-10-12 16:25:47 · 1232 阅读 · 1 评论 -
电商项目常见问题
1下单步骤(1).下单(2).下单同时预占库存(3).支付(4).支付成功真正减扣库存(5).取消订单(超时未支付)(6).回退预占库存2什么时候进行预占库存方案一:加入购物车的时候去预占库存。方案二:下单的时候预占库存。方案三:支付的时候去预占库存。分析:方案一:加入购物车并不代表用户一定会购买,这个时候预占库存的话会导致想买的无法加入,不想买的一直占用。方案二:加入购物车后下单,这个时候预占库存,说明用户选择支付了,购买欲望比方案一强烈,订单有一个时效原创 2020-10-06 09:47:05 · 2428 阅读 · 0 评论 -
SQL语句优化
如果项目要对SQL语句进行优化,说明已经到了最后一步,一般来说:1.业务优化>2.设计,程序优化>3.DB,SYSTEM优化>4.SQL优化这种顺序去逐步优化效果更佳。1.原理:cpu消耗过大通常情况下都是有慢sql造成的,这里的慢sql包括全表扫码,扫码数据量过大,内存排序,磁盘排序,锁竞争等待等。2.表现现象:sql执行状态为,sending data,Copying to tmp table,Copying to tmp table on disk,Sorting resul原创 2020-10-06 09:41:51 · 121 阅读 · 1 评论 -
Java虚拟机常见面试问题
最近有朋友去过阿里面试,说掉坑里面了,总之是面试前准备工作不够,聊到关于jvm这块的一些理论知识,记录如下:1.jvm垃圾回收虚拟机中划分为年轻代,年老代和持久代。年轻代:所有新生对象首先都是放在年轻代,年轻代主要收集那些生命周期短的对象。年轻代又分为三个区,一个Eden区,两个Survivor区,大部分对象在Eden区生成,当Eden区满时,还存活的对象复制到Survivor区的其中一个,当Survivor也满时,会触发GC,清除非存活对象。年老代:在年轻代中经历了N次垃圾回收后仍然存活的原创 2020-10-06 09:40:42 · 138 阅读 · 0 评论 -
常用的 MySQL读写分离
这个也是面试中经常会聊到的一个话题,一般聊到数据库,都会问下数据库是怎么架构的,做了高可用没,还是读写分离的,下面就这个读写分离稍微简单记录下。为什么要做读写分离首先简单介绍下什么是读写分离,读写分离,就是让主数据库处理事务性增、改、删操作,而从数据库处理查询操作。然后主数据库变更的数据同步到从数据库。数据库的写操作是比较耗时的,如果大量的写操作是会影响到读到效率,根据二八法则,80%的数据库操作是读操作,剩下的20%则为写操作,读写分离后,可以大大提升单库无法支撑的负载压力。所以读写分离,解决的是原创 2020-10-05 11:37:30 · 187 阅读 · 0 评论 -
谈谈面试中的自我介绍
最近很长一段时间里面,在职场中发现很多人不太会自我介绍了,虽然我也隐约感觉到叫别人做自我介绍是有那么点尴尬,但是兄dei,既然叫你做,你就做嘛,别带有情绪或者敷衍,要不然大家都尴尬啊。我不排除有些面试官是因为各种原因面试前没看简历,所以进去面试的时候叫别人做个自我介绍,然后他低头先看完简历再说,潜在词就是,你介绍你的,我看我的简历,咱们都有事情做。作为求职者来说,很多人可能会认为自我介绍个球啊,不都在简历上写着嘛,自己看啊。但是兄dei,做自我介绍是一种态度,也是一种能力,千万别忽略了。为什么要做自我介原创 2020-10-05 11:36:18 · 558 阅读 · 0 评论 -
高并发场景限流方式
为什么要限流举例1:你开发了一个企业中非常核心的一个服务,日常情况下会有上百上千个应用调用,如果对服务的调用不加限制的使用,可能会给服务器造成非常大的压力,直接导致所有服务节点全部被请求占满,从而产生很大的生产事故。举例2:公司搞了个大促销活动,准备了10台服务器来应对活动的到来,但促销活动开始后,原本估计只有100万人参加的促销活动,瞬间涌进来1000万用户,远远超过了服务处理能力的访问请求,导致后端的服务器直接满负荷运算,并伴随着大量的资源抢占和上下文切换,使得普通处理能力非常慢,除了直接影响业原创 2020-10-05 11:35:16 · 499 阅读 · 0 评论 -
网站性能优化大纲
基本意识:1.确保优化方向正确,产品特性和阶段决定优化方向。2.确定优化带来的收益,无收益不优化,只要明确收益才启动优化。3.在投入和产出上做取舍,合理的设定优化目标和资源投入。4.功能与性能平衡,产品功能优化是最低成本,高性价比的优化之一,并且立竿见影。5.防止过早和过渡优化,过早和过渡优化直接导致人力成本以及资源浪费。...原创 2020-10-05 11:34:22 · 108 阅读 · 0 评论 -
Redis 内存数据库在智慧消防系统设计中的应用
智慧消防系统是一种将 GPS(全球卫星定位系统)、GIS(地理信息系统)、GSM(无线移动通信系统)和计算机、物联网和大数据等技术集于一体的智能消防无线报警网络服务系统。随着信息技术的深度发展,人类已进入大数据时代,消防行业面临着前所未有的巨大挑战与机遇,传统消防系统工作方式与新形势、新任务不相适应的矛盾日益凸显。在物联网产业迅猛发展的大背景下,必须主动运用大数据来解决了电信、建筑、供电、交通等公共设施建设协调发展的问题。在智慧消防系统中,消防指挥中心与用户单位联网,改变了过去传统、落后和被动的报警、接警、原创 2020-10-01 11:38:02 · 354 阅读 · 0 评论 -
我的物联网项目之微服务分库查询优化
查询优化主要涉及到两块。1.订单表数据查询优化订单数据库是单独出来的,每一条记录记录显示都涉及到用户名称(微信号,昵称,app昵称),商家名称(商家名称,电话),设备名称(设备编号,车牌号)等。按照目前的表设计,订单库和用户库,商家库,设备库都独立,表都是通过主键ID进行关联,订单表存放的是userId,merchantId,deviceId等。这种设计方式带来一个瓶颈,就是订单记录显示的时候要通过ID关联查询显示出用户,商家,设备的信息并展示在前端页面。当初在开发过程中,由于时间比较赶,没原创 2020-10-01 11:35:43 · 263 阅读 · 0 评论 -
我的物联网项目之 分布式事务
2.0平台服务化架构,必然分库,分库又必然面临一个分布式事务处理问题,所以无论是设计还是编码远远比1.0单体应用架构的工作量要大。不过做任何事情,重点不在实施,而是在思路,所以要解决分布式事务问题,还得先想清楚屡清楚怎么去做才是重点之重。分布式事务处理方法其实大把,无需担忧找不到解决方法,关键是要找到满足自己业务场景,适合自己业务场景的方法,我之前做的项目涉及个分布式事务处理的方法也有好几个,其中记忆较为清晰的是一个移动充值的业务,大概业务就是用户通过银行在线支付完成后,然后给自己的手机号码充值,这个里原创 2020-10-01 11:34:10 · 214 阅读 · 0 评论 -
我的物联网项目之 2.0平台架构体系
准确的来说,1.0平台的单体应用架构没有互联网项目架构一说,传统的MVC开发模式,简单的小作坊操作流程,对于每个开发人员来说,只需要关注业务的功能模块实现而已。在1.0平台运营的半年时间里面,除了业务本身的需求爆炸性的增长,要求开发的迭代迅速,并且每次升级都不应该伤筋动骨,只是模块化的累加或者在原有的框架里面局部的更新,除了这些,我们还看到了1.0平台本身的基础性运营配套设施也迫切需要投入进来,以提高平台的运营效率,如日志平台,监控平台,调度平台,报表平台,甚至权限和单点登录也很需要,所以对于2.0平台的整原创 2020-10-01 11:32:02 · 610 阅读 · 0 评论 -
我的物联网项目之单数据库事务也需谨慎
单体架构模式下的数据库基本都是单数据库,所以应用层通过spring事务控制的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。通过spring实现事务的方式也有声明式事务和编程式事务两种,不管哪一种实现起来都比较简单。像一般的业务,类型下面这种方式编程就行:1.配置文件 <!-- 事务控制 --> <bean id="transactionManager" class="org.springframework.jdbc.datasou原创 2020-10-01 11:14:04 · 136 阅读 · 0 评论 -
我的物联网项目之前期线上事故
一 MQTT连接数报警项目上线一个月左右,投放出去的摇摇车数量大概在200量左右,平均每天在线数(听说有些商家精打细算,有小孩需要坐车了才插电,平时都不插电,还有些干脆一直仍在角落懒的管)也就维持在100左右,当时在阿里云购买的MQTT配置是连接数上限2000(MQTT是按连接数购买的),像目前的摇摇车投放数用当时的配置绰绰有余了,连续一个月以来,都是正常化(现在想来,当初的推广策略不成熟,每天投放的摇摇车数量也是要么一天3,4台,要么连续好几天才推广3,4台),所以问题并没有暴露出来,不过出来混迟早要原创 2020-09-28 14:19:25 · 202 阅读 · 0 评论 -
mysql开通远程访问权限
GRANT ALL PRIVILEGES ON *.* TO 'han'@'%' IDENTIFIED BY 'hanjixiao';FLUSH PRIVILEGES;原创 2020-09-25 09:51:04 · 82 阅读 · 0 评论