docker下安装MySQL

查找Docker Hub上的mysql镜像:docker search mysql

拉取官方的镜像:docker pull mysql (不加版本默认是:latest)或 docker pull mysql:version (docker pull mysql:5.6)
查看本地镜像列表:docker images |grep mysql
删除镜像:docker rmi 镜像id

运行mysql:

docker run -p 3306:3306 --name mymysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

1、拉取MySQL镜像
在进行MySQL容器的部署之前,需要先拉取MySQL镜像。可以通过以下命令拉取官方提供的MySQL镜像:
$ docker pull mysql
2、创建MySQL容器

a、先创建一个简单的mysql容器实例
docker run -p 3306:3306 --name sample-mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:xxx(docker拉取的mysql的镜像版本号)

b、复制里面的/etc/mysql文件夹
docker cp sample-mysql:/etc/mysql/. /mydata/mysql/conf
c、删除掉临时容器
docker rm -f sample-mysql
d、启动完整的容器命令

 docker run \
 -p 3306:3306 \
 --name mysql \
 -e MYSQL_ROOT_PASSWORD=123456 \
 -v /mydata/mysql/log:/var/log/mysql \
 -v /mydata/mysql/data:/var/lib/mysql \
 -v /mydata/mysql/conf:/etc/mysql \
 --privileged=true \
 -d mysql:xxx(docker拉取的mysql的镜像版本号)

默认端口启动完整命令:
docker run -p 3306:3306 --name mysql --restart=always --privileged=true
-v /usr/local/mysql/log:/var/log/mysql
-v /usr/local/mysql/data:/var/lib/mysql
-v /usr/local/mysql/conf:/etc/mysql
-v /etc/localtime:/etc/localtime:ro
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

启动命令解释:
-p 3306:3306:指定宿主机端口与容器端口映射关系
–name mysql:创建的容器名称
–restart=always:总是跟随docker启动
–privileged=true:获取宿主机root权限
-v /usr/local/mysql/log:/var/log/mysql:映射日志目录,宿主机:容器
-v /usr/local/mysql/data:/var/lib/mysql:映射数据目录,宿主机:容器
-v /usr/local/mysql/conf:/etc/mysql:映射配置目录,宿主机:容器
-v /etc/localtime:/etc/localtime:ro:让容器的时钟与宿主机时钟同步,避免时区的问题,ro是read only的意思,就是只读。
-e MYSQL_ROOT_PASSWORD=123456:指定mysql环境变量,root用户的密码为123456
-d mysql:latest:后台运行mysql容器,版本是latest。
自定义端口启动完整命令:
docker run -p 13306:13306 --name mysql01 --restart=always --privileged=true
-v /mydata/mysql/log:/var/log/mysql
-v /mydata/mysql/data:/var/lib/mysql
-v /mydata/mysql/conf:/etc/mysql
-v /etc/localtime:/etc/localtime:ro
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
查看运行中的容器:docker ps

查看所有容器:docker ps -a

启动容器:docker start < NAME or ID>

停止容器:docker stop < NAME or ID>

删除容器:docker rm

查看日志:docker logs

Navicat连接启动的mysql

在这里插入图片描述

出现这个问题的话

1.查看正在运行的容器是否有需要连接的mysql:docker ps

如果没有,启动:docker start < NAME or ID>

2.进入mysql容器里面: docker exec -it < NAME or ID> bash

登录mysql : mysql -u root -p
输入密码123456
执行密码更新及远程登录授权:ALTER USER ‘root’@‘%’ IDENTIFIED WITH mysql_native_password BY ‘123654’;
查看数据库连接的用户:SELECT user, host FROM mysql.user;
新增数据库连接用户:CREATE USER ‘read’@‘%’ IDENTIFIED BY ‘123654’;
再次用Navicat连接
连接成功!

如有侵权,请联系本人

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值