文档章节

使用docker部署nginx+tomcat架构(2):访问mysql数据库

o
 osc_g8254g7s
发布于 2019/08/19 22:24
字数 527
阅读 29
收藏 0

精选30+云产品,助力企业轻松上云!>>>

上一篇完成了通过docker部署nginx+tomcat的基础软件架构,但是距离一个真正可用的软件架构还差得很远。其中最重要的一点是缺少数据库这个角色的存在,那么本篇就来完善这一点。

废话少说,直接进入正题。

 

首先拉取mysql镜像:

docker pull mysql:5.7

 

创建本地mysql目录:

mkdir -p ~/mysql/data ~/mysql/conf ~/mysql/logs
chmod -R 777 ~/mysql/logs

 

mysql/conf目录下创建配置文件my.cnf:

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

log-error=/var/log/mysql/error.log
pid-file=/var/run/mysqld/mysqld.pid

# disabling the password validation
#validate_password=off

# set bind-address
#bind-address=0.0.0.0
View Code

 

启动mysql:

docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=admin -v ~/mysql/conf:/etc/mysql/conf.d -v ~/mysql/data:/var/lib/mysql -v ~/mysql/logs:/var/log/mysql mysql:5.7

登录mysql测试下(root密码已经已经设置成了admin):

mysql -uroot -p -h 172.17.0.2

看上去没什么问题😀

 

创建tomcat的jndi数据源tomcat/conf/context.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <Resource name="mysql/test" 
        auth="Container"
        type="javax.sql.DataSource" 
        driverClassName="com.mysql.jdbc.Driver"
        url="jdbc:mysql://172.17.0.2:3306/test" 
        username="root"
        password="admin" 
        maxActive="20" 
        maxIdle="10" 
        maxWait="10000" />
</Context>

新建一个javaweb工程demo,并配置web.xml:

<resource-ref>
        <res-ref-name>mysql/test</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>

创建测试页面testdb.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>connect to mysql/test</title>
</head>
<body>
<%
    Context context = new InitialContext();
    DataSource dataSource = (DataSource) context.lookup("java:comp/env/mysql/test");
    Connection conn = dataSource.getConnection();
    out.println("Connection.isValid: " + conn.isValid(3));
    conn.close();
%>
</body>
</html>

 

打包demo工程上传到tomcat/webapps下,重启tomcat测试下:

docker restart tomcat1
docker restart tomcat2

 

测试下tomcat与mysql的连接是否成功:

 

 

ok, it works!

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
使用docker部署nginx+tomcat架构(3):使用docker-compose简化部署操作

经历了之前的两篇,我们已经大体上了解了docker部署容器的过程。 使用docker部署nginx+tomcat架构使用docker部署nginx+tomcat架构(2):访问mysql数据库 不过,整个部署过程中需要手动输入很多...

osc_d2xp8kc1
2019/08/20
7
0
运维文档整理

PM2守护进程工具介绍及使用 Shell数组 zabbix 自动发现端口服务监控教程 配置zabbix通过微信报警企业微信报警 网卡软中断过高问题优化总结 TokuDB安装 Linux下批量管理工具pssh使用记录 linu...

osc_0jbt10ev
2019/08/22
4
0
Python 爬取51cto博客页面信息

介绍 提到爬虫,互联网的朋友应该都不陌生,现在使用Python爬取网站数据是非常常见的手段,好多朋友都是爬取豆瓣信息为案例,我不想重复,就使用了爬取51cto博客网站信息为案例,这里以我的博...

低调的男孩
05/31
0
0
运维工程师打怪升级进阶之路 V2.0

在此之前,发布过两个版本: 运维工程师打怪升级之路 V1.0 版本发布 运维工程师打怪升级必经之路 V1.0.1 很多读者伙伴们反应总结的很系统、很全面,无论是0基础初学者,还是有基础的入门者,...

民工哥
2019/05/13
0
0
运维工程师打怪升级进阶之路 V2.0

在此之前,发布过两个版本: 运维工程师打怪升级之路 V1.0 版本发布 运维工程师打怪升级必经之路 V1.0.1 很多读者伙伴们反应总结的很系统、很全面,无论是0基础初学者,还是有基础的入门者,...

osc_y4l0tx8t
2019/05/13
6
0

没有更多内容

加载失败,请刷新页面

加载更多

Saga分布式事务框架

1优点 1、避免服务之间的循环依赖,因为saga协调器会调用saga参与者,但参与者不会调用协调器 2、集中分布式事务编排 3、降低参与者的复杂性 4、回滚更容易管理 Saga模式的一大优势是它支持长...

战略板儿砖
今天
11
0
为什么要使用static_cast (x)而不是(int)x? - Why use static_cast(x) instead of (int)x?

问题: I've heard that the static_cast function should be preferred to C-style or simple function-style casting. 我听说static_cast函数应该比C样式或简单的函数样式转换更可取。 Is......

fyin1314
今天
18
0
最难的几道Java面试题,看看你跪在第几个?

这是我收集的10个最棘手的Java面试问题列表。这些问题主要来自 Java 核心部分 ,不涉及 Java EE 相关问题。你可能知道这些棘手的 Java 问题的答案,或者觉得这些不足以挑战你的 Java 知识,但...

码农突围
今天
20
0
浅谈Spring核心技术 IOC与AOP

IOC: IOC(Inversion Of Controll,控制反转)是一种设计思想,将原本在程序中手动创建对象的控制权,交由给Spring框架来管理。IOC容器是Spring用来实现IOC的载体,IOC容器实际上就是一个M...

创业789
今天
13
0
智能金融丨神州信息助某省联社实现一体化智能运维建设

近日,由神州信息实施的某省联社“IT服务管理平台项目”顺利通过验收,并获得客户的高度认可。该项目是神州信息在农信领域打造的又一标杆项目,为客户实现了IT运维流程标准化及运维系统一体化...

脉脉小达人
今天
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部