mysql5.7安装
MySQL5.7docker安装mysql docker pull mysql:5.7 123456docker run -p 3306:3306 --name mysql \-v /mydata/mysql/log:/var/log/mysql \-v /mydata/mysql/data:/var/lib/mysal \-v /mydata/mysql/conf:/etc/mysql \-e MYSQL_ROOT_PASSWORD=root \-d mysql:5.7 vi /mydata/mysql/conf/my.cnf 1234567891011[client]default-character-set=utf8[mysql] default-character-set=utf8[mysqld]init_connect='SET collation_connection=utf8_unicode_ci'init_connect='SET NAMES utf8'characte...
mysql命令行各个参数解释
http://blog.51yip.com/mysql/1056.html mysql命令行各个参数解释123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081Usage: mysql [OPTIONS] [database] //命令方式 -?, --help //显示帮助信息并退出 -I, --help //显示帮助信息并退出 --auto-rehash //自动补全功能,就像linux里面,按Tab键出提示差不多,下面有例子 -A, --no-auto-rehash //默认状态是没有自动补全功能的。-A就是不要自动补全功能 -B, --batch //ysql不使用历史文件,禁用交互 (Enables --silent) --c...
mysql集群部署
Mysql常见集群方式 Mysql-MMM(mysql主主复制管理器) MHA(Mysql高可用方面是一个相对成熟的方案) InnoDB Cluster(支持自动Failover,强一致性,读写分离,读库高可用,读请求负载均衡,推荐方案) 主从同步创建Master实例并启动123456docker run -p 3307:3306 --name mysql-master \-v /mydata/mysql/master/log:/var/log/mysql \-v /mydata/mysql/master/data:/var/lib/mysql \-v /mydata/mysql/master/conf:/etc/mysql \-e MYSQL_ROOT_PASSWORD=root \-d mysql:5.7 参数说明: 123-p 3307:3306:将容器的3306映射到主机的3307端口-v 挂载-e 初始化root用户密码 修改master基本配置123456789101112131415161718vim /mydata/mysql/master/...
时间字段选择
MySQL 5.6 版本开始 DATETIME 和 TIMESTAMP 精度支持到毫秒 DATETIME 占用 8 个字节,TIMESTAMP 占用 4 个字节,DATETIME(6) 依然占用 8 个字节,TIMESTAMP(6) 占用 7 个字节 TIMESTAMP 日期存储的上限为 2038-01-19 03:14:07,业务用 TIMESTAMP 存在风险 使用 TIMESTAMP 必须显式地设置时区,不要使用默认系统时区,否则存在性能问题,推荐在配置文件中设置参数 time_zone = '+08:00' 推荐日期类型使用 DATETIME,而不是 TIMESTAMP 和 INT 类型 表结构设计时,每个核心业务表,推荐设计一个 last_modify_date 的字段,用以记录每条记录的最后修改时间
JWT知识小结
JWT/JWS/JWE/JWK JWT:指的是 JSON Web Token,由 header.payload.signture 组成。不存在签名的JWT是不安全的,存在签名的JWT是不可窜改的。 JWS:指的是签过名的JWT,即拥有签名的JWT。是一个有着简单的统一表达形式的字符串 ,基础三部分 (jwt实现方式之一) JWE:相对于JWS,JWE则同时保证了安全性与数据完整性(性能损失偏大)。JWE由五部分组成(jwt实现方式之一) JWK:既然涉及到签名,就涉及到签名算法,对称加密还是非对称加密,那么就需要加密的 密钥或者公私钥对。此处我们将 JWT的密钥或者公私钥对统一称为 JSON WEB KEY,即 JWK。 JWT工作流程 123456781. 用户登录:提供用户名和密码;2. JWT生成token和refresh_token,返回客户端;(注意:refresh_token的过期时间长于token的过期时间)3. 客户端保存token和refresh_token,并携带token,请求服务端资源;4. 服务端判断to...
SpringBoot项目启动时初始化操作的6种方式
SpringBoot项目启动时初始化操作的6种方式1、监听容器刷新完成扩展点ApplicationListener<ContextRefreshedEvent>ApplicationContext事件机制是观察者设计模式实现的,通过ApplicationEvent和ApplicationListener这两个接口实现ApplicationContext的事件机制。 Spring中一些内置的事件如下: ContextRefreshedEvent:ApplicationContext 被初始化或刷新时,该事件被发布。这也可以在 ConfigurableApplicationContext接口中使用 refresh() 方法来发生。此处的初始化是指:所有的Bean被成功装载,后处理Bean被检测并激活,所有Singleton Bean 被预实例化,ApplicationContext容器已就绪可用。 ContextStartedEvent:当使用 ConfigurableApplicationContext (ApplicationContext子接口)接口中的 star...
探究spring的底层实现原理1
探究spring的底层实现原理1<谨供参考> 这篇文章我将尝试从以下几个方面配合源码讲解spring的原理,并在下一个篇章手写一个简易版spring的小demo来更透彻的分析spring项目是如何"动"起来的 BeanFactory Bean的整个生命周期 Bean的属性填充 依赖注入 先来看一张图(看不清可以右键打开) 这里需要说的一点是,spring的核心就是AbstractApplicationContext.refresh中的13个方法,关于refresh我会单独写BeanFactory12345678910以springboot项目为例,运行主入口类的SpringApplication.run会走到AbstractApplicationContext.refresh方法,从ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory()到registerListeners()都是在准备并创建BeanFactory的过程,而这个BeanFacto...
探究spring的底层实现原理2
接上一篇[探究spring的底层实现原理1上一篇从理论到源码讲到了以下四点 BeanFactory Bean的整个生命周期 Bean的属性填充 依赖注入 这节就切合上一篇,手写一个简易版spring的小demo,看看我是怎样去实现的java <谨供参考> 应用程序上下文(启动类) 123ClassPathXmlApplicationContext:xml配置文件方式AH8q3dGK2f2vLZVgbRfLTjQPySe2yRaJHs:注解方式SpringApplication:SpringBoot方式 模拟注解方式启动 配置类,指定"spring"需要扫描的限定包路径 123@ComponentScan("org.xiaowu.xiaowu.spring.xiaowu")public class AppConfig {} 标注@Component的类则是需要被spring管理的 12345@Target({ElementType.TYPE})@Retention(Re...
hexo基础seo优化
seo搜索引擎优化(Search Engine Optimization),它是一种通过分析搜索引擎的排名规律,了解各种搜索引擎怎样进行搜索,怎样抓取互联网页面,怎样确定特定关键词的搜索结果排名的技术.Google自动收录效果还不错,百度就差得远了 另外GitHub不允许百度的Spider爬取GitHub上的内容,但我仍会把百度相关部分粘贴出来 修改路径结构 permalink: :year:month:day/:title/ 网站收录谷歌 进入谷歌站长(https://search.google.com/search-console),选择第二个带前缀的 然后选择html标签认证, 将内容粘贴到主题可放置head标签的地方,随后,重新部署博客,再点击验证 百度 首先登陆百度搜索平台(https://ziyuan.baidu.com/site/index),点击**新增网站** 输入自己的网站 验证, 我选择的是html标签,然后在主题文件夹下找到放置head标签的地方,将代码粘贴进去, 然后重新提交. 之后在点击完...
利用github的actions实现blog的cicd
参考: https://zellwk.com/blog/github-actions-deploy/ 首先博客如果使用hexo搭建, 且借助hexo-deployer-git依赖进行远程上传的话, 则需要将repo设置为ssh方式, https方式是不支持的, 如下 12345deploy: type: git # Windows: https://github.com/wang-xiaowu/wang-xiaowu.github.io.git repo: git@github.com:wang-xiaowu/wang-xiaowu.github.io.git branch: master 当前样例为, 一个blog_source库(未公开)存储未编译md文档, 走cicd流程之后, 将编译好的资源利用hexo d的方式部署到另一个一个github源仓库(开源库) 首先配置ssh/private key1ssh-keygen -t rsa -b 4096 -C "943915349@qq.com" -f key 邮箱修改为本人邮箱 复...
