最近在看網上找了個springboot的項目試試,在項目中需要的MySQL版本是5.7,但是本機的MySQL只有5.5。因此想着在我的服務器上跑一個MySQL:5.7的容器解決這一問題,但是在實際操作過程中出現了一些問題,在這做下記錄。
一、MySQL:5.7容器的創建
1.拉取鏡像
1 docker pull mysql:5.7
2.查看鏡像
1 docker images
3.創建與啟動容器
1 docker run -di --name=mysql5.7 -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
4.查看啟動的容器
1 docker ps
5.查看容器(包括關閉的容器)
1 docker ps -a
二、出現的問題
1.創建完容器后,以守護式方式創建完容器后發現MySQL容器幾秒鍾后自己關閉了。
在網上查后發現可能是虛擬內存不夠。使用free后發現swap虛擬內存為0,應該是虛擬內存未啟用。
啟用swap:
1 dd if=/dev/zero of=/swapfile bs=1M count=1024 2 3 mkswap /swapfile 4 5 swapon /swapfile
再次free發現swap有數值了

再次啟動容器后發現容器不會自己關閉了,那么問題解決了。
2.在springboot中連接MySQL容器報錯

在網上搜索解決辦法大部分都說是權限的問題,但是添加權限后還是沒用。
后來想到可能是配置文件的問題,因為我將服務器的33306端口映射到了MySQL的3306端口,而在配置文件中沒有填寫MySQL端口的信息,那么用的應該是MySQL默認的3306端口。
在配置文件中加入33306端口配置信息,springboot可以正常使用了。

