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 @ 2021-05-09 09:24  buildings  阅读(510)  评论(0编辑  收藏  举报