阿里云使用Docker部署MySQL服务,并且通过IDEA进行连接
这里演示如何使用阿里云来进行MySQL的部署,系统使用的是Linux系统 (Ubuntu)。
为什么使用Docker? 首先是因为它的可移植性可以在任何有Docker环境的系统上运行应用,避免了在不通操作系统上产生的各种适配问题。另外还有其他的比如,环境隔离,易于部署和维护等等优势。
阿里云
-
首先拥有一个阿里云的服务器,然后根据下面指令去安装Docker:
- 这一步是常规建议操作更新下先,防止任何的不适配
sudo apt-get update sudo apt-get upgrade
- 安装Docker
sudo apt install docker
-
安装好之后需要先进行阿里云的镜像配置加速,因为docker是外网需要科学上网,直接拉取镜像可能拉取不到。这里镜像加速的配置的网址:阿里云配置镜像加速器
或者直接输入以下命令:
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://uylbxudk.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
这里的配置结束后就可以正常的拉取所需要的镜像了。
部署MySQL
- 启动Docker
sudo systemctl start docker
sudo systemctl enable docker
- 创建一个Docker网络,以便不同容器之间通信
sudo docker network create mysql-network
为什么要创建单独的Docker网络?
-
便于容器之间的通信:如果你有多个容器需要相互通信,比如一个应用容器和一个数据库容器,放在同一个网络中可以让它们通过容器名称相互访问,而不是依赖IP地址。
-
增强隔离和安全性:自定义网络让你的容器彼此隔离,只有在同一个网络中的容器才能互相访问,这样增加了安全性,防止其他容器或主机访问它们。
-
数据卷轴的映射,防止容器重启数据丢失。
-
在本地的服务器(宿主机)上创建一个文件夹目录来存放mysql数据
mkdir -p /my/own/datadir/mysql
-
-
启动MySQL容器
sudo docker run --name mysql-container --network mysql-network -e MYSQL_ROOT_PASSWORD=yourpassword -v /my/own/datadir/mysql:/var/lib/mysql -p 3306:3306 -d mysql:latest
使用换行符便于理解:
sudo docker run --name mysql-container \
--network mysql-network \
-e MYSQL_ROOT_PASSWORD=yourpassword \
-v /my/own/datadir/mysql:/var/lib/mysql \
-p 3306:3306 \
-d \
mysql:latest
sudo docker run
:使用sudo
权限运行Docker容器。--name mysql-container
:为容器指定一个名称mysql-container
。--network mysql-network
:将容器连接到名为mysql-network
的Docker网络。-e MYSQL_ROOT_PASSWORD=yourpassword
:设置mysql的用户密码,默认root用户。-v /my/own/datadir/mysql:/var/lib/mysql :
将容器里的数据映射到宿主机目录下。-p 3306:3306
:将主机的3306端口映射到容器的3306端口。-d
:以分离模式运行容器(后台运行)。mysql:latest
:使用最新版本的MySQL镜像。(如没有会自动拉取)
以上的操作都完成后使用 docker ps
命令查看mysql服务是否在运行:
- 配置阿里云安全组放行3306端口,这一步很重要不然外部不能连接。
- 找到服务器的安全组:
- 放行3306端口,可以选择 ‘‘快速添加’’ 直接勾选MySQL,或者手动添加都可以:
测试连接MySQL
通过本地终端直接测试MySQL连接(本地需要有mysql):
mysql -h [yourIPAddress] -P 3306 -u root -p
通过IDEA工具来测试连接:
- 配置
- 测试连接成功
补充1: 重启MySQL
服务器重启的话Docker的服务就会停止,再重启MySQL需要进行以下步骤。
- 查看所有已经存在的容器
sudo docker ps -a
如果可以看到我们之前的容器就可以重新启动了。
- 通过指令
sudo docker start mysql-container
来重启容器,然后我们再通过docker ps
查看会发现MySQL已经在运行了。
补充2: 如何进入Docker容器
-
首先,你需要进入运行 MySQL 的 Docker 容器。假设容器名称为 mysql- container:
docker exec -it mysql bash
-
进入mysql容器后,连接mysql
mysql -u root -p