Mac下修改MySql root密码

背景

安装MySql后, 未及时修改安装时的root默认密码, 密码过期; 需要重置密码.

修改步骤

停止MySql服务

系统偏好设置 → MySql → Stop MySql Server

修改密码

  • 打开一个终端 → sudo /usr/local/mysql/bin/mysqld_safe –skip-grant-tables
  • 打开另一个终端 → sudo /usr/local/mysql/bin/mysql -u root → UPDATE mysql.user SET authentication_string=PASSWORD(‘新密码’) WHERE User=’root’; → FLUSH PRIVILEGES; → \q
阅读全文 »

源码安装nginx并详解配置

背景

Nginx是一款轻量级的网页服务器、反向代理服务器.相较于Apache、lighttpd具有占有内存少,稳定性高等优势.它最常的用途是提供反向代理服务.

安装依赖

yum -y install gcc gcc-c++ autoconf automake make

nginx 中gzip模块需要 zlib 库,rewrite模块需要 pcre 库,ssl 功能需要openssl库

安装PCRE

1
2
3
4
5
6
7
cd ~/source-module
wget http://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.41.tar.gz

tar -xzvf pcre-8.41.tar.gz
cd pcre-8.41
./configure --prefix=/usr/local
make
make install

安装zlib

1
2
3
4
5
6
7
cd ~/source-module
wget http://zlib.net/fossils/zlib-1.2.8.tar.gz
tar -xzvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure --prefix=/usr/local
make
make install
阅读全文 »

免费跳过视频网站的广告--通杀主流平台

背景

看了腾讯动漫各位导演的演讲, 好有感触, 特意找了一部提及的动漫(妖怪名单)进行观看, 总共18集; 看了2集觉得不错, 想直接看完, 但每次都有60s广告时间, 烦人. 速度浏览了下该站点前端代码, 哈哈, 很好解决这问题, 接下来详细讲解各种手法.

以下手法经测试, 可以秒杀目前流行的各大视频平台.

工具

chrome浏览器

手法分类

针对不同的用户群体, 给出相适应的避广告手法.

阅读全文 »

微信扫码登录场景实现及延伸

背景

用过微信网页版的人应该都清楚网页登陆的流程,大致描述一下这个过程:

  1. 打开网页版登陆链接
  2. 页面会显示一个二维码
  3. 用微信客户端扫描二维码,让用户确认登陆网页版
  4. 如果确认登陆,网页版会自动进入聊天界面

这个过程的交互方式和一般的WEB应用不太一样,步骤4网页自动跳转,明显是由服务端主动推送了内容给网页端,网页端收到跳转确认后才触发的,这里就引出了今天要讨论的问题:服务端推送技术.服务端推送又称为Comet,服务端异步处理等.很早以前就出现了,但一直没有一个统一的标准,存在着不少Comet技术框架,各个Web容器也各自实现了自己的Comet支持.最近公司的产品也出现了和微信网页版登陆类似的场景,需要用到Comet技术,我简单的研究了下,写下来记录一下.

阅读全文 »

使用jconsole监控JVM运行状况

背景

最近有个服务运行几天就会莫名其妙的无法调用, 但使用jps -m|grep 服务名称指令查看后发现服务进程仍然存在; 因此怀疑可能是有内存泄漏导致进程编程”僵尸”进程.

为此决定使用jconsole来对指定进程的JVM进行监控, 下面将详细介绍如何配置Linux JRE来监控内存.

阅读全文 »

IDEA常见问题

  1. server.port=9001 设置无效

    • 原因:启动该应用时添加了VM options(-Dserver.port=9001)
    • 解决方案:删除该启动参数
  2. lombok不生效

    • 原因:未安装插件、未启用注解处理
    • 解决方案
      • 安装插件:打开设置面板 -> plugins,搜索lombok并安装、重启
      • 启用注解处理:打开设置面板 -> Build,Execution,Deployment -> Compiler -> Annotation Processors,在右侧面板中将Enable annotation processing前的复选框选中
  3. 代码修改后,运行时发现并未生效

    • 原因:java类文件未正常编译替换项目根目录下out目录中的对应文件
    • 解决方案:删除out目录,并重新编译
阅读全文 »

Linux下MySQL_5.5的修改字符集编码为UTF8

背景

mysql安装后, 插入的数据位乱码, 经检查为默认字符集是latin1, 而程序使用UTF-8.

检查字符集

1.使用ssh终端连接mysql

1
mysql -h 127.0.0.1 -u root -p

2.查看字符集

1
show variables like 'character%';
阅读全文 »

ngrok暴露本地Web应用映射到外网

背景

开发第三方支付, 需要接收第三方回调(即在外网上暴露api), 发现ngrok可以完成该业务, 下面具体介绍其使用.

阅读全文 »

SOA服务总线设计

背景

基于总线的设计,借鉴了计算机内部硬件组成的设计思想(通过总线传输数据).在分布式系统中,不同子系统之间需要实现相互通信和远程调用,比较直接的方式就是“点对点”的通信方式,但是这样会暴露出一些很明显的问题:系统之间紧密耦合、配置和引用混乱、服务调用关系错综复杂、难以统一管理、异构系统之间存在不兼容等.而基于总线的设计,正是为了解决上述问题.总线则作为中枢系统,提供统一的服务入口,并实现了服务统一管理、服务路由、协议转换、数据格式转换等功能.这样能够将不同系统有效地连接起来,并大大降低了连接数(每个子系统只需要和总线建立连接)和系统间连接拓扑的复杂度.

阅读全文 »

CAP原理和最终一致性

背景

在足球比赛里,一个球员在一场比赛中进三个球,称之为帽子戏法(Hat-trick).在分布式数据系统中,也有一个帽子原理(CAP Theorem),不过此帽子非彼帽子.CAP原理中,有三个要素:

  • 一致性(Consistency)
  • 可用性(Availability)
  • 分区容忍性(Partition tolerance)

CAP原理指的是,这三个要素最多只能同时实现两点,不可能三者兼顾.因此在进行分布式架构设计时,必须做出取舍.而对于分布式数据系统,分区容忍性是基本要求,否则就失去了价值.因此设计分布式数据系统,就是在一致性和可用性之间取一个平衡.对于大多数web应用,其实并不需要强一致性,因此牺牲一致性而换取高可用性,是目前多数分布式数据库产品的方向.

当然,牺牲一致性,并不是完全不管数据的一致性,否则数据是混乱的,那么系统可用性再高分布式再好也没有了价值.牺牲一致性,只是不再要求关系型数据库中的强一致性,而是只要系统能达到最终一致性即可,考虑到客户体验,这个最终一致的时间窗口,要尽可能的对用户透明,也就是需要保障“用户感知到的一致性”.通常是通过数据的多份异步复制来实现系统的高可用和数据的最终一致性的,“用户感知到的一致性”的时间窗口则取决于数据复制到一致状态的时间.

阅读全文 »