简介
在这之前接触过项目发布到服务器,所有阿里云端口问题,数据库拒绝访问权限问题,一些常用的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
- 拉取镜像并查看,这个时候别看他不动你就ctrl+c停了,多等一会
docker pull mysql:5.7
docker images
- 通过镜像创建容器,–name 自己输名字删的时候有用 -e密码最好别乱输,一会会就忘了,我就一直root
docker run -di --name cht_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql
- 进入容器
docker exec -it 你的容器名字 bash
- 进入mysql
mysql -uroot -p
- 命令行使用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容器,之后又创建好几次自己项目的数据库...
一个问题完了又一个问题真的是!!!得亏都有前辈踩坑哈哈
|