1. 前语
前提是现已装置docker,如果没装置请下载,几分钟即可装置完结,地址: www.docker.com/products/do…
2. 挑选官方镜像
hub.docker.com/_/mysql/tag…
本文挑选挑选8.0版本
3.下载装置
docker pull mysql:8.0
- 检查镜像
4. 发动
设置暗码为root,容器名称为mysql
docker run --name mysql -p 3306:3306 -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0
4.1 参数说明
-
-p 3306:3306
表明把容器端口映射到本地,如果不映射本地衔接不上数据库,只能进入到容器里边衔接
-
-v /data/mysql:/var/lib/mysql,
数据文件目录,表明把容器/var/lib/mysql目录,映射到/data/mysql,这样不会因容器重新发动导致数据丢掉
-
-e MYSQL_ROOT_PASSWORD=root
表明mysql 暗码为root
-
–name mysql
表明容器名称为mysql
4.2 检查容器列表
5. 登录数据库
5.1 命令行方法
检查容器列表,容器ID为0a83ebe4baae
docker exec -it 0a83ebe4baae /bin/bash
5.2 本地navicat衔接
本地经过navicat衔接,会报如下错,原因是客户端不支持caching_sha2_password的暗码加密方法。那么,咱们修改用户暗码加密方法为经典方法。
5.2.1 修改暗码加密方法
> mysql -u root -proot;
> use mysql;
> select user, host, plugin, authentication_string from user\G;
> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
5.2.2 再次登录
6.扩展篇
6.1 数据丢掉测验
测验步骤
创建数据库,创建用户表,插入数据,封闭数据库,在次发动检查数据是否存在
6.1.1 创建测验数据
create database test;
use test;
create table user(
id int,
age int,
username varchar(20)
)
insert into user values(1,18,'张三');
6.1.2 封闭数据库
0a83ebe4baae为容器id,经过docker ps查询
docker stop 0a83ebe4baae
检查容器是否发动
能够看到现已停止
6.1.3 再次发动
docker restart mysql
6.1.4 检查数据
执行如下命令能够看到数据依然存在,没有丢掉
docker exec -it 0a83ebe4baae /bin/bash
mysql -uroot -proot;
show databases;
use test;
select * from user
6.2 图形化方法办理容器
下载链接:www.docker.com/products/do…
如果嫌命令行比较麻烦,能够经过docker desktop来办理,也是比较方便,能够看到提供了重启,删除,暂停等按钮
也能够点击容器,快速进入里边进行命令行