docker安装MySQL

本文档详细介绍了如何在Docker中安装MySQL8,包括启动和关闭MySQL服务,设置root用户密码,解决Navicat连接报错问题,创建可远程登录的用户,并提供了使用Navicat进行图形化连接的步骤。同时,还涵盖了如何通过containerid或containername管理MySQL容器。
摘要由CSDN通过智能技术生成

安装

  1. 启动docker
systemctl start docker
//开机自启
systemctl enable docker
  1. 查看MySQL镜像
    docker search mysql

  2. 拉取 MySQL 镜像

# 下载最新版本
docker pull mysql:latest
  1. 查看已安装镜像
docker images
  1. 启动mysql镜像
docker run -itd --name mysql01 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

–name:给容器命名,此处命名为mysql01
-p: 表示容器内部端口和服务器端口映射关联。前面的数字
是映射的端口,后面的数字是真实的端口。代表把容器的 3306
端口映射到虚拟机的 3306 端口,外部主机(真实主机)可以直接通过宿主机(虚拟机)ip和3306端口 访问到 (虚拟机上的)MySQL 的服务。
-e:配置信息,此处配置mysql的root用户的登陆密码
MYSQL_ROOT_PASSWORD=123456设置 MySQL 服务 root 用户的密码
-d:成功启动容器后输出容器的完整ID
结尾的mysql:表示从docker镜像mysql启动一个容器

  1. 登录MySQL
# 通过container name
docker exec -it mysql01 mysql -uroot -p          
# 或通过container id登录
docker exec -it b1dc67fb54c6 mysql -uroot -p     

在这里插入图片描述

图形化界面连接

尝试使用navicat连接,可能的报错

在这里插入图片描述
该错误的原因是在MySQL8之前版本中加密规则mysql_native_password,而在MySQL8以后的加密规则为caching_sha2_password。解决此问题有两种方法,一种是更新navicat驱动来解决此问题,一种是将mysql用户登录的加密规则修改为mysql_native_password。此处采用第二种方式。

//设置密码永不过期,把password换成自己的mysql的用户的密码(这里是root)
ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; 
//修改**root用户**加密规则
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用户的密码 ,'password'是你的密码
//刷新权限(可选)
FLUSH PRIVILEGES; 

在这里插入图片描述

root用户%默认是可以远程登录的SSH

创建能远程登录的用户

create user 'sqlUsr1' identified with mysql_native_password by '123456';
grant all privileges on *.* to 'sqlUsr1';

navicat设置

在这里插入图片描述
完成连接

MySQL启动与关闭

# 查看所有容器
docker ps -a
# 查看当前运行容器
docker ps

在这里插入图片描述
通过container id或者container name打开/关闭容器

# 启动容器
docker start b1dc67fb54c6 # docker start mysql01 
# 停止容器
docker stop b1dc67fb54c6 # docker stop mysql01 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值