最近在看网上找了个springboot的项目试试,在项目中需要的MySQL版本是5.7,但是本机的MySQL只有5.5。因此想着在我的服务器上跑一个MySQL:5.7的容器解决这一问题,但是在实际操作过程中出现了一些问题,在这做下记录。
一、MySQL:5.7容器的创建
1.拉取镜像
docker pull mysql:5.7
2.查看镜像
docker images
3.创建与启动容器
docker run -di --name=mysql5. -p : -e MYSQL_ROOT_PASSWORD= mysql:5.7
4.查看启动的容器
docker ps
5.查看容器(包括关闭的容器)
docker ps -a
二、出现的问题
1.创建完容器后,以守护式方式创建完容器后发现MySQL容器几秒钟后自己关闭了。
在网上查后发现可能是虚拟内存不够。使用free后发现swap虚拟内存为0,应该是虚拟内存未启用。
启用swap:
dd if=/dev/zero of=/swapfile bs=1M count= mkswap /swapfile swapon /swapfile
再次free发现swap有数值了
再次启动容器后发现容器不会自己关闭了,那么问题解决了。
2.在springboot中连接MySQL容器报错
在网上搜索解决办法大部分都说是权限的问题,但是添加权限后还是没用。
后来想到可能是配置文件的问题,因为我将服务器的33306端口映射到了MySQL的3306端口,而在配置文件中没有填写MySQL端口的信息,那么用的应该是MySQL默认的3306端口。
在配置文件中加入33306端口配置信息,springboot可以正常使用了。