IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 六个小时的苦逼--SpringBoot项目通过idea发布到阿里云Docker -> 正文阅读

[系统运维]六个小时的苦逼--SpringBoot项目通过idea发布到阿里云Docker

简介

在这之前接触过项目发布到服务器,所有阿里云端口问题,数据库拒绝访问权限问题,一些常用的Linux命令都是接触过。

netstat -nlp |grep :13145 查看某端口占用的线程的pid
firewall-cmd --zone=public --add-port=8080/tcp --permanent 开启8080端口: 出现success表明添加成功
systemctl restart firewalld.service 重启防火墙
firewall-cmd --zone=public --list-ports 查看通过的端口:
kill -9 5144 结束进程
数据库权限
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
Ctrl+c

但是之前一直是自己通过maven打个jar包手动上传到服务器,然后手动输入命令启动,开放个端口就可以访问了

Docker环境是俩周前配的,今天命令啥的又都给忘了!!!
这次是我只在docker环境配了mysql数据库,记录下命令

docker pull mysql:5.7 最好看看你自己项目用的啥版本的。
查看镜像:docker images
查看正在运行的容器:docker ps
查看所有的容器:docker ps -a
docker exec -it mysqlTest bash 进入容器
启动容器:docker start CONTAINER_NAME(容器的名称)
停止容器:docker stop CONTAINER_NAME(容器的名称)
删除指定镜像:docker rmi IMAGE_ID
删除指定容器 docker rm 容器名

docker run -di --name cht_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql
可以创建不同版本的mysql

授权mysql>: ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
刷新权限mysql>:FLUSH PRIVILEGES;

使用 Docker 安装多版本的 MySQL 这个感觉写的还不错,主要是简洁明了,照着copy就行

正文1

  1. 拉取镜像并查看,这个时候别看他不动你就ctrl+c停了,多等一会
    docker pull mysql:5.7
    docker images
    
  2. 通过镜像创建容器,–name 自己输名字删的时候有用 -e密码最好别乱输,一会会就忘了,我就一直root
    docker run -di --name cht_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql
    
  3. 进入容器
    docker exec -it 你的容器名字 bash 
    
  4. 进入mysql
    mysql -uroot -p
    
  5. 命令行使用mysql的人应该不多吧。。。
    远程工具连接mysql
    但是mysql默认是拒绝远程连接的,可以
    授权mysql>: ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码(这个是远程连接用密码,最好和你的mysql密码搞一样了)';
    要不然springboot连接会被拒绝掉的
    root@ip 拒绝连接 (password yes)这么个错误
    刷新权限mysql>:FLUSH PRIVILEGES;
    
    登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
    mysql -u root -pvmware
    mysql>use mysql;
    mysql>update user set host = '%' where user = 'root';
    mysql>select host, user from user;
    flush privileges;
    
    效果一样。
    如果是阿里云的话还可以用一个网页版的界面,感觉很高级的一个DMS
吐槽自己
 	数据库正常已经配好了哈,但是我一开始自己pull mysql没指定版本,导致后面springboot mysql驱动问题。

还有一个知识点,之前不知道。MySQL在docker拉下来的数据库编码不是utf-8 会导致中文乱码,解决的话我是按照修改Docker MySQL官方镜像字符集UTF8解决的

以上是配置mysql出的问题


正文2

idea使用插件Docker,安装是按照这位大哥的博客的,完美流程不踩坑用idea部署springboot项目到docker

吐槽自己
	我居然不知道自己装过了docker,还有这个docker我找好久没找到,我一开始点开是图二。。。

在这里插入图片描述
在这里插入图片描述
最后我的坑点在于我打包时时一开始双击package会报错,发现一个找不到jar包异常,就是我打好了jar包但是执行ADD boot001-1.0.0.jar app.jar 这句时错误
不过有明显的错误提示就好的多了,找了一下就在pom文件找到了这句,会把target目录下的jar包给到docker目录去。

<!--绑定mvn package命令,当执行package这个maven命令打包项目的同时
                    会把target目录下的jar包给copy到docker目录去-->

但是他获取的名称少一个版本号,我不知道怎么改,就是我的jar包名称是由组成的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
但是他只拿到了boot001。。。我就直接给改成了简洁明了一次到位
在这里插入图片描述
至此可以正常把jar包build上去服务器。也有了
在这里插入图片描述
但是可怜的我又遇到了问题:jar包找不到主类和没有主清单属性。翻译过来是这个。一看大小才几百k,我之前打的jar包都30多mb
缺了这个,在pom文件中添加

 <plugin>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-maven-plugin</artifactId>
       <executions>
           <execution>
               <goals>
                   <goal>repackage</goal>
               </goals>
           </execution>
       </executions>
       <configuration>
           <includeSystemScope>true</includeSystemScope>
       </configuration>

 </plugin>

之后执行package就行了,不过也会有问题。感觉是docker缓存了我的jar包,我多次重复尝试后把jar包删掉都会正常执行,也不报找不到jar包错误!使用清除缓存
在这里插入图片描述
再次package就好了,可以通过ip访问了
到这挺开心的,就遇到了数据库权限,版本问题。。。
然后一切都搞好后,上传文件又上不去,都不知道是什么问题。
最后docker容器需要用到本地目录的话还得挂载上去。可以在idea里面配置。
在这里插入图片描述
就可以正常上传文件了。
但是在这之后有遇到了中文乱码!!!上面已解决

	我创建了4个mysql容器,之后又创建好几次自己项目的数据库...
	一个问题完了又一个问题真的是!!!得亏都有前辈踩坑哈哈
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-11 12:50:23  更:2021-08-11 12:53:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 6:12:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码