Docker安装MySQL5和MySQL8

 


安装教程

拉取镜像

docker search mysql

安装MySQL 5.x

从仓库下拉镜像:

sudo docker pull mysql:5.7.26

新建挂载目录:

sudo mkdir -p /data/docker_data/mysql5 && cd /data/docker_data/mysql5
chmod -R 777 /data/docker_data/mysql5
运行镜像:
docker run --name mysql5 \
-p 3308:3306 \
-e MYSQL_ROOT_PASSWORD=your_root_passwd \
-v $PWD/conf:/etc/mysql/conf.d
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-d mysql:5.7.26
相关参数描述:

-p 3308:3306:将容器的 3306 端口映射到主机的 3308 端口。

-v -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。

-v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。

-v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。

-e MYSQL_ROOT_PASSWORD=your_root_passwd:初始化 root 用户的密码。

-d :表示在后台运行 mysql:5.7.26 镜像名+版本号

 

连接MySQL 5

进入docker本地连接mysql客户端
sudo docker exec -it mysql5 bash mysql -uroot -pyour_root_passwd
2) 开启远程连接服务:
mysql> grant all privileges on *.* to root@'%' identified by 'your_root_passwd' with grant option; 
mysql> flush privilesges;

安装MySQL 8.0.x

从仓库下拉镜像:

sudo docker pull mysql:8.0.21

新建挂载目录:

sudo mkdir -p /data/docker_data/mysql8 && cd /data/docker_data/mysql8
chmod -R 777 /data/docker_data/mysql8

创建容器:

复制代码
sudo docker run \
-p 3308:3306 \
-e MYSQL_ROOT_PASSWORD=your_root_passwd  \
-v $PWD/conf:/etc/mysql/  \
-v $PWD/logs:/var/log/mysql \
-v $PWD/data:/var/lib/mysql \
-v $PWD/mysql-files:/var/lib/mysql-files/ \
--name mysql8 \
-d mysql:8.0.21
复制代码
相关参数描述:

-p 3308:3306:将容器的 3306 端口映射到主机的 3308 端口。

-v -v $PWD/conf:/etc/mysql/:将主机当前目录下的 conf 目录挂载到容器的 /etc/mysql/。

-v $PWD/logs:var/log/mysql:将主机当前目录下的 logs 目录挂载到容器的 /logs。

-v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。

-v $PWD/mysql-files:/var/lib/mysql-files/:将主机当前目录下的mysql-files目录挂载到容器的/var/lib/mysql-files/。

-e MYSQL_ROOT_PASSWORD=your_root_passwd:初始化 root 用户的密码。

-d :表示在后台运行 mysql:8.0.21 镜像名+版本号

连接MySQL 8

进入docker本地连接mysql客户端
sudo docker exec -it mysql8 bash mysql -uroot -pyour_root_passwd
2) 开启远程连接服务:
mysql> create user 'root'@'%' identified by 'your_root_passwd';
mysql> grant all privileges on *.* to root@'%' with grant option;
mysql> flush privilesges;

 

posted @   buildings  阅读(542)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示