Docker 的简单使用记录

编写 Dockerfile

在 CentOS 6 的基础上制作一个 MySQL 的容器,在 Dockerfile 中写入如下内容:

# Docker MySQL image

# Use centos:6 as base image
FROM centos:6

# Maintainer
MAINTAINER Tang Jiujun <jiujun.tang@gmail.com>

# Commands to update the images
RUN yum install -y mysql mysql-server;

# Copy my.cnf config
COPY etc/my.cnf /etc/my.cnf

RUN service mysqld start; \
    /usr/bin/mysqladmin -u root password 'root'; \
    mysql -uroot -proot -e "grant all privileges on *.* to 'root'@'%' identified by 'root';FLUSH PRIVILEGES;"

# Commands when start a new container
CMD ["/usr/bin/mysqld_safe"]

# Expose ports
EXPOSE 3306
Read more   2016/8/5 posted in  软件配置
 

使用 JProfiler 9 远程监控 JVM

方式一

JProfiler Start Center -> Quick Attach -> On another computer,下载远程主机对应的 JProfiler 安装包,解压并执行 bin/jpenable 根据提示选择需要监控的 Java 进程

Read more   2016/6/18 posted in  软件配置
 

MySQL、SQL Server 和 Oracle 触发器的创建

场景:当 users 表在 insert,update,delete 时,在 users_log 表中记录变更的 id

MySQL

触发时机:BEFORE,AFTER
触发事件:INSERT,UPDATE,DELETE
NEW 和 OLD 关键字:

| action | NEW | OLD |
|--------|----------------|----------------|
| insert | 插入的新数据 | 无 |
| update | 修改为的新数据 | 被修改的原数据 |
| delete | 无 | 被删除的原数据 |

DELIMITER $
CREATE TRIGGER insert_user AFTER INSERT
ON users FOR EACH ROW 
BEGIN
    INSERT INTO users_log(user_id, action) VALUES(NEW.id, 'insert');
END$
DELIMITER ;
Read more   2016/6/11 posted in  理论概念
 

Java 动态代理的简单理解

动态代理作用

动态代理是 Java SE 1.3 新增的特性,利用动态代理可以在运行时创建一个实现了一组给定接口的新类。因此动态代理代理的是接口,不是类。

使用动态代理的场景:
* 一个接口的实现在编译时无法知道,需要在运行时才能实现
* 实现更加通用的适配器(Adapter)和装饰器(Decorator)
* 面向切面编程的支持

Read more   2016/4/23 posted in  Java学习
 

关于 MySQL 中 InnoDB 的 MVCC 的一些理解

Read more   2016/4/17 posted in  理论概念