mysql

阿里技术文档:Redis+Nginx+设计模式+Spring全家桶+Dubbo文档精选

↘锁芯ラ 提交于 2021-02-12 05:41:30
最近花了很长的时间去搜罗整理Java核心技术好文,我把每个Java核心技术的优选文章都整理成了一个又一个的文档。 今天就把这些东西分享给老铁们,也能为老铁们省去不少麻烦,想学什么技能了,遇到哪方面的问题了 直接打开文档学一学就好了。 不多说,直接上干货! 一、Redis技术好文精选整理(共11篇) Redis实战 Redis设计与实现_扫描版_12.7M Redis入门指南 Redis缓存和MySQL数据一致性方案详解 Redis哨兵、复制、集群的设计原理,以及区别 Spring Boot 整合 Redis 新浪微博开放平台中的 redis 实践 一文梳理 Redis 基础 分布式锁的由来、及Redis分布式锁的实现详解 Redis为什么是单线程、及高并发快的3大原因详解 如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题 二 、Ngi nx技术好文精选整理(共6篇) 《Netty权威指南(第2版)》 Nginx 反向代理、负载均衡图文教程 ! Nginx 搭建图片服务器 Nginx 配置参数中文说明 全面了解 Nginx 主要应用场景 后端实践:Nginx日志配置(超详细) 三、设计模式技术好文精选整理(共6篇) JAVA多线程设计模式 《Head First设计模式(高清版)》 设计模式:Java语言中的应用 设计模式-可复用面向对象软件的基础

MySQL 基础

廉价感情. 提交于 2021-02-12 04:40:06
学院视频简单汇总 一、常用命令 在命令行中,配置好环境变量后,通过cmd可以直接进入mysql命令行模式,同时列举几种常用命令 # 进入mysql数据库,密码可以先不写,打完-p后再输入,防止被别人看到 mysql -u账号 -p密码 -u 用户名 -p 密码 -h 服务器名称 -p 端口号 -D 打开指定数据库 --prompt=name 设置命令提示符 --delimiter=name 指定分隔符 -V,--version 输出版本信息并且退出 exit,quit,\q 退出 # 创建数据库 CREATE {DATABASE|SCHEMAS} [IF NOT EXISTS] db_name DEFAULT CHARACTER SET = 'UTF8|GBK|...'; CREATE DATABASE IF NOT EXISTS myWebSite; # 修改数据库编码方式 ALTER {DATABSE|SCHEMAS} db_name [DEFAULT] CHARACTER SET [=] charset_name; ALTER DATABSE myWebSiteDEFAULT CHARACTER SET = utf8; # 数据库列表 SHOW DATABASE; SHOW SCHEMAS; # 查看指定数据库定义 SHOW CREATE {DATABASE|CEHMAS}

【DB宝3】在Docker中使用rpm包的方式安装Oracle 19c

心已入冬 提交于 2021-02-12 04:14:17
点 击 上 方 蓝 字 “ DB宝 ”,关 注 我 吧 一、安装 Docker 软件 二、创建 CentOS7 .6 的容器 三、 rpm 方式安装 Oracle 19 c 3 .1 、安装 database-preinstall 包 3 .2 、下载安装 db 软件,上传到 docker 容器内 3 .3 、创建数据库实例 四、数据库配置 4 .1 、修改密码 4 .2 、修改参数 4 .3 、修改 EM 的展现方式 4 .4 、配置用户环境变量 五、重启容器后的操作 六、将容器打包成镜像上传,供其他用户使用 七、其他用户下载使用 一、安装Docker软件 CentOS 7安装Docker官网: https://docs.docker.com/engine/install/centos/ 1 1、卸载掉旧版本的 Docker: 2 yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine 3 4 2、执行以下安装命令去安装依赖包: 5 yum install -y yum-utils

SQL注入详解

拥有回忆 提交于 2021-02-12 03:40:31
一:什么是sql注入   SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编写时的疏忽,通过SQL语句,实现无账号登录,甚至篡改数据库。 二: SQL注入攻击的总体思路     1:寻找到SQL注入的位置   2:判断服务器类型和后台数据库类型   3:针对不同的服务器和数据库特点进行SQL注入攻击 三: SQL注入攻击实例 String sql = " select * from user_table where username = ' "+userName+" ' and password = ' "+password+" ' "; -- 当输入了上面的用户名和密码,上面的SQL语句变成: SELECT * FROM user_table WHERE username = ' ’or 1 = 1 -- and password= ' ’ """ -- 分析SQL语句: -- 条件后面username=”or 1=1 用户名等于 ” 或1=1 那么这个条件一定会成功; -- 然后后面加两个-,这意味着注释,它将后面的语句注释,让他们不起作用,这样语句永远都--能正确执行,用户轻易骗过系统,获取合法身份。 -- 这还是比较温柔的,如果是执行 SELECT * FROM user_table WHERE username = '' ;

Docker深入浅出系列 | 单节点Nginx+Springboot实战

纵饮孤独 提交于 2021-02-12 03:34:14
Nginx+Springboot实战 [TOC] Docker已经上市很多年,不是什么新鲜事物了,很多企业或者开发同学以前也不多不少有所接触,但是有实操经验的人不多,本系列教程主要偏重实战,尽量讲干货,会根据本人理解去做阐述,具体官方概念可以查阅官方教程,因为本系列教程对前一章节有一定依赖,建议先学习前面章节内容。 本系列教程导航: Docker深入浅出系列 | 容器初体验 Docker深入浅出系列 | Image实战演练 Docker深入浅出系列 | 单节点多容器网络通信 Docker深入浅出系列 | 容器数据持久化 教程目的: 了解nginx容器搭建 了解springboot镜像制作与dockerfile配置 了解docker容器网络配置 了解容器volume配置 了解nginx对容器名称做反向代理 了解springboot额度服务项目搭建 前期准备 1.下载mysql docker pull mysql 2.下载nginx docker pull nginx 3.克隆 credit-facility-service 作为后面部署演示使用,使用 docker 分支 git clone https://github.com/EvanLeung08/credit-facility-service.git 4.虚拟机、centos和docker环境安装请查看第一章

安全:SQL注入漏洞详解

天涯浪子 提交于 2021-02-12 03:20:38
2019-12-24 SQL注入漏洞详解 目录 SQL注入的分类 判断是否存在SQL注入 一:Boolean盲注 二:union 注入 三:文件读写 四:报错注入 floor报错注入 ExtractValue报错注入 UpdateXml报错注入 五:时间盲注 六:REGEXP正则匹配 七:宽字节注入 八:堆叠注入 九:二次注入 十:User-Agent注入 十一:Cookie注入 十二:过滤绕过 十三:传说中的万能密码 SQL注入的预防 (1)预编译(PreparedStatement)(JSP) (2)PDO(PHP) (3)使用正则表达式过滤 (4) 其他 以下所有代码的环境:MySQL5.5.20+PHP SQL注入 SQL注入是因为后台SQL语句拼接了用户的输入,而且Web应用程序对用户输入数据的合法性没有判断和过滤,前端传入后端的参数是攻击者可控的,攻击者可以通过构造不同的SQL语句来实现对数据库的任意操作。比如查询、删除,增加,修改数据等等,如果数据库的用户权限足够大,还可以对操作系统执行操作。 SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤。SQL注入是针对数据库、后台、系统层面的攻击! 由于以下的环境都是MySQL数据库,所以先了解点MySQL有关的知识。在MySQL5.0之后

架构设计之高可扩展性

老子叫甜甜 提交于 2021-02-12 03:17:06
点击上方“ JavaEdge ”,关注公众号 设为“ 星标 ”,好文章不错过! 高可扩展性表示可通过加机器线性提高系统处理能力,承担更高流量和并发。 由于峰值的流量不可控,不可能在系统架构设计初期就考虑好机器数量以支持并发。 一般基于成本考虑,在业务平稳期,会预留30%~50%冗余机器应对运营活动或者推广可能带来的峰值流量,但当有突发事件时,流量可能瞬间提升几倍。莫过于明星公布恋情,大家都会到两人微博下互动,微博流量短时内迅速增长,微博信息流也短暂出现无法刷新消息,系统一时间不可用。 所以如何应对突发的流量呢? 最快的方式就是堆机器。不过能保证扩容三倍机器后,系统也能支撑三倍的流量吗? 系统瓶颈在哪里? 通过在单机系统中增加处理核心,可增加系统的并行处理能力,但当并行任务数较多时,系统会因为争抢资源而达到性能拐点,处理能力不升反降。 集群系统也是这样。不同的系统分层上可能存在一些“瓶颈”,这些瓶颈点制约着统的横向扩展能力。 比如系统流量1000 QPS,对DB也是1000 QPS。若流量增加10倍,虽然系统可通过扩容正常服务,DB却成瓶颈。或单机网络带宽50Mbps,若扩容到30台机器,前端负载均衡带宽就超过千兆带宽限制,也会成为瓶颈点。 所以系统中存在哪些服务会成为系统扩展的瓶颈呢? 无状态的服务和组件很易于扩展,但是MySQL这种存储服务有状态,较难扩展

MySQL免安装版

我怕爱的太早我们不能终老 提交于 2021-02-12 02:48:02
  我的笔记本电脑一直用的是 5.6版本,现在想换个 5.7的版本,将 5.6卸载之后使用 mysql-installer-web-community-5.7.26.0.msi 一直无法安装,我确定注册表、隐藏文件也全部删除了,甚至全局搜索有关 mysql文件夹进行删除还是不行,然后我在我的台式机上同样 5.6然后卸载去执行 mysql-installer-web-community-5.7.26.0.msi安装 5.7,竟然畅通无阻,安装成功了。可能是电脑环境的问题,不想纠结这样的问题,于是就用免安装版的试试(免安装版以后卸载方便,而且可以安装到任意盘中)。 1、下载地址 https://dev.mysql.com/downloads/mysql/      点击下载之后会提示登录操作,直接点击下载即可    2、配置 my.ini文件    将下载的 .zip压缩文件解压到想要安装的盘符下,我的是C:\HuangShaohua\DevTools\mysql-5.7,然后在安装目录下新建my.ini 文件,输入如下配置信息:   [mysqld]   basedir ="C:\HuangShaohua\DevTools\mysql-5.7"   datadir ="C:\HuangShaohua\DevTools\mysql-5.7\data"   port=3306  

初识数据库(MySql)

☆樱花仙子☆ 提交于 2021-02-12 02:44:31
一、简介   1.MySql是关系型数据库.   2.是一种开放源码软件,   3.是一种关联数据库管理系统.   4.服务器工作于客户端/服务端模式之下,或者是嵌入系统中.   数据库管理软件分类:   分两大类:   关系型:如db2,oracle,access,sql server,mysql, sql语句通用   关系型:mongodb,redis,memcache   可以简单地理解为关系型数据库需要有表结构,非关系型数据库是key-value存储的,没有表结构 二、数据库概述    1.什么是记录?   抽取事务一系列典型的特征,组成一条记录,在计算机中描述一个事物,相当于文件中的一行内容,单纯的一行记录没有什么意义,如果我们按逗号作为分割,依次定义各个字段意思,相当于定义了一张表,如图:   这样的话我们就知道具体数据的意思。    2.什么是数据表?   表就和上面的表格一样,下面还可以继续写入其他人的相关信息,最终保存为文件的形式,我们平时就可以理解数据表就是文件。 三、MySQL的安装   1.下载MySQL地址: http://dev.mysql.com/downloads/mysql/   2.解压,如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如:D:\mysql-5.6.45-winx64   3.添加环境变量, 【右键计算机

mysql 按年度、季度、月度、周、日SQL统计查询

旧城冷巷雨未停 提交于 2021-02-12 02:03:55
表结构: 表中数据总条数:2926 1. 统计每天的单数 SELECT COUNT(*),DATE_FORMAT(t.create_time,'%Y-%m-%d') from t_call_record t GROUP BY DATE_FORMAT(t.create_time,'%Y-%m-%d') (执行时间:0.003s) SELECT count(*),DATE_FORMAT(t.create_time,'%Y-%m-%d') from t_call_record t GROUP BY TO_DAYS(t.create_time) (执行时间:0.002s) 第二种优于第一种,会列出所有的单子 1.2 统计上个月的天数据 SELECT count(*),DATE_FORMAT(t.create_time,'%Y-%m-%d') from t_call_record t where YEAR(t.create_time) = '2018' GROUP BY DAY(t.create_time) (执行时间:0.001s)按天统计从上个月最后一天向前推的31天数据 1.3 按周统计数据 SELECT count(*),WEEK(t.create_time),MONTH(t.create_time) from t_call_record t where YEAR(t.create