【微服务架构 - 02 - Docker】03 Docker 构建 MySQL

拉取 MySQL 镜像

docker pull mysql:5.7.22

运行容器

docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7.22
  • -p 3306:3306:将容器的3306端口映射到主机的3306端口
  • -v /usr/local/docker/mysql/conf:/etc/mysql:将主机当前目录下的 conf 挂载到容器的 /etc/mysql
  • -v /usr/local/docker/mysql/logs:/var/log/mysql:将主机当前目录下的 logs 目录挂载到容器的 /var/log/mysql
  • -v /usr/local/docker/mysql/data:/var/lib/mysql:将主机当前目录下的 data 目录挂载到容器的 /var/lib/mysql
  • -e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码

使用客户端工具链接 MySQL

在这里插入图片描述


若导入数据库出现空间太小问题

需要使用数据卷更改配置

在这里插入图片描述

以下列配置启动容器

docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7.22

将容器中的配置拷贝到宿主机中

	docker cp mysql:/etc/mysql/ .

将所有配置文件移入 conf 目录中,并删除 mysql 目录

root@ubuntu:/usr/local/docker/mysql/conf/mysql# mv *.* ..
root@ubuntu:/usr/local/docker/mysql/conf/mysql# cd ..
root@ubuntu:/usr/local/docker/mysql/conf# rm -fr mysql

删除原有的容器

docker rm -f mysql

进入 /conf/mysql.conf.d 目录下 往 mysqld.cnf 追加

echo "max_allowed_packet	= 128M" >> mysqld.cnf

以数据卷的方式重新启动容器

docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7.22

重新导入

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_37581282/article/details/86633891