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来办理,也是比较方便,能够看到提供了重启,删除,暂停等按钮

也能够点击容器,快速进入里边进行命令行

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。