大家好,欢迎来到IT知识分享网。
1. 前言
前提是已经安装docker,如果没安装请下载,几分钟即可安装完成,地址: https://www.docker.com/products/docker-desktop/
2. 选择官方镜像
https://hub.docker.com/_/mysql/tags
本文选择选择8.0版本
3.下载安装
docker pull mysql:8.0
• 查看镜像
4. 启动
设置密码为root,容器名称为mysql
docker run --name mysql1 -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 图形化方式管理容器
下载链接:https://www.docker.com/products/docker-desktop/
如果嫌命令行比较麻烦,可以通过docker desktop来管理,也是比较方便,可以看到提供了重启,删除,暂停等按钮
也可以点击容器,快速进入里面进行命令行
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/97772.html