日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

docker部署tomcat+mysql服务

發布時間:2024/9/30 数据库 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 docker部署tomcat+mysql服务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

mysql服務

以sql文件clock_in.sql為例

當然也可以選擇直接先起一個mysql容器,用數據庫管理工具建。這邊主要是為了自動部署。

  • clock_in.sql
/* Navicat MySQL Data TransferSource Server : spring Source Server Version : 50717 Source Host : localhost:3306 Source Database : clock_inTarget Server Type : MYSQL Target Server Version : 50717 File Encoding : 65001Date: 2020-04-03 14:32:58 */ create database `test` default character set utf8 collate utf8_general_ci; use test;SET FOREIGN_KEY_CHECKS=0;-- ---------------------------- -- Table structure for `user` -- ---------------------------- DROP TABLE IF EXISTS `user`; CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`email` varchar(30) COLLATE utf8_bin NOT NULL,`passwd` varchar(40) COLLATE utf8_bin NOT NULL,`is_admin` int(1) NOT NULL DEFAULT '0',PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;-- ---------------------------- -- Records of user -- ---------------------------- INSERT INTO `user` VALUES ('1', 'admin', 'admin', '1');
  • privileges.sql

修改mysql密碼

use mysql; select host, user from user; -- 因為mysql版本是5.7,因此新建用戶為如下命令: create user test_user identified by 'test_passwd'; -- 將xgctf數據庫的權限授權給創建的test_user用戶,密碼為test_passwd grant all on test.* to test_user@'%' identified by 'test_passwd' with grant option; -- 這一條命令一定要有:flush privileges;
  • setup.sh
#!/bin/bash set -e#查看mysql服務的狀態,方便調試,這條語句可以刪除 echo `service mysql status`echo '1.啟動mysql....' #啟動mysql service mysql start sleep 3 echo `service mysql status`echo '2.開始導入數據....' #導入數據 mysql < /mysql/clock_in.sql echo '3.導入數據完畢....'sleep 3 echo `service mysql status`#重新設置mysql密碼 echo '4.開始修改密碼....' mysql < /mysql/privileges.sql echo '5.修改密碼完畢....'#sleep 3 echo `service mysql status` echo `mysql容器啟動完畢,且數據導入成功`
  • tail -f /dev/null

Dockerfile

FROM mysql:5.7.20#設置免密登錄 ENV MYSQL_ALLOW_EMPTY_PASSWORD yes#將所需文件放到容器中 COPY setup.sh /mysql/setup.sh COPY clock_in.sql /mysql/clock_in.sql COPY privileges.sql /mysql/privileges.sql #為/mysql/setup.sh添加執行權限 RUN chmod u+x /mysql/setup.sh #設置容器啟動時執行的命令 CMD ["sh", "/mysql/setup.sh"]
  • build鏡像
docker build . -t mysql_test
  • 開啟容器
docker run -d --name=mysqlserver mysql_test

這邊給容器名稱為mysqlserver

tomcat服務

  • application.properties

配置數據庫連接文件,例如:

spring.datasource.url=jdbc:mysql://mysqlserver:3306/test?serverTimezone=GMT%2B8 !--spring.datasource.url=jdbc:mysql://localhost:3306/mall spring.datasource.username=test_user spring.datasource.password=test_passwd !--spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver server.port=8080 !--mapping對應的就是resources下面的mapping目錄。 mybatis.mapper-locations=classpath:mapping/*.xml !--com.mall.entity是包目錄。 mybatis.type-aliases-package=com.challenge.clockin.model logging.level.com.mall.mapper=debug!--連接池最大連接數(使用負值表示沒有限制) spring.redis.jedis.pool.max-active=-1 !--連接池最大阻塞等待時間(使用負值表示沒有限制) !--spring.redis.jedis.pool.max-wait=-1 !--連接池中的最大空閑連接 spring.redis.jedis.pool.max-idle=8 !-- # 連接池中的最小空閑連接 spring.redis.jedis.pool.min-idle=0 !-- # 連接超時時間(毫秒) !--spring.redis.timeout=

主要注意修改數據庫連接,將指定的ip地址改為mysql對應的容器名,在后面啟動容器的時候進行對應。以及注意修改連接的用戶名密碼為前面mysql服務對應的。

打包好war包后

  • Dockerfile
FROM tomcat MAINTAINER author <author@qq.com> EXPOSE 8080 COPY test.war /usr/local/tomcat/webapps ENTRYPOINT /root/startup.sh
  • 部署tomcat容器服務命令
docker run -d -p 1234:8080 --link mysqlserver:mysqlserver test_server

測試一下發現成功傳入username和passwd,服務器端成功去執行了sql命令返回了一條記錄。

總結

以上是生活随笔為你收集整理的docker部署tomcat+mysql服务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。