mysql 8.0 docker_使用Docker安装MySQL8.0

本文介绍了如何在Ubuntu 16.04系统上使用Docker安装MySQL 8.0,包括安装Docker、拉取MySQL镜像、启动MySQL容器,并解决与Navicat连接时出现的2059错误,通过修改密码加密规则来解决问题。
摘要由CSDN通过智能技术生成

在阿里云弄了台优惠版的服务器,打算用docker安装MySQL8.0

机器是Ubuntu16.04的操作系统

1、安装docker

sudo apt-get update

sudo apt install docker.io

2、拉取MySQL的镜像

# 由于当时最新版是mysql8.0,就不用写版本号tag了

docker pull mysql

运行完以上命令之后,镜像就已经下载下来了

3、查看镜像情况

docker images

2f4bcf5bf418

docker镜像

可以看到MySQL8.0的镜像已经有了,tag是latest。,表明是最新的,镜像的创建时间是2周前

4、第一次启动MySQL

docker run -p 3306:3306 --name MYSQL8.0 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

解释下这条命令的参数:

-p 3306:3306:将容器内的3306端口映射到实体机3306端口

--name MYSQL8.0:给这个容器取一个容器记住的名字

-e MYSQL_ROOT_PASSWORD=123456:docker的MySQL默认的root密码是随机的,这是改一下默认的root用户密码

-d mysql:latest:在后台运行mysql:latest镜像产生的容器

之后的第二次启动直接用docker start MYSQL8.0即可,不需要docker run

5、遇到的问题

新装了mysql8.0后再用navicat链接就会报2059的错误。

上网查了发现是8.0之后mysql更改了密码的加密规则,只要在命令窗口把加密方法改回去即可。

首先使用以下命令进入MySQL的docker容器

docker exec -it MYSQL8.0 bash

然后登录MySQL

mysql -uroot -p123456

然后运行以下SQL即可

alter user 'root'@'%' identified by '123456' password expire never;

alter user 'root'@'%' identified with mysql_native_password by '123456';

flush privileges;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值