赞
踩
前提是已经安装docker,如果没安装请下载,几分钟即可安装完成,地址: www.docker.com/products/do…
本文选择选择8.0版本
- docker pull mysql:8.0
- 复制代码
设置密码为root,容器名称为mysql
- docker run --name mysql -p 3306:3306 -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0
- 复制代码
-p 3306:3306
表示把容器端口映射到本地,如果不映射本地连接不上数据库,只能进入到容器里面连接
-v /data/mysql:/var/lib/mysql,
数据文件目录,表示把容器/var/lib/mysql目录,映射到/data/mysql,这样不会因容器重新启动导致数据丢失
-e MYSQL_ROOT_PASSWORD=root
表示mysql 密码为root
--name mysql
表示容器名称为mysql
查看容器列表,容器ID为0a83ebe4baae
-
- docker exec -it 0a83ebe4baae /bin/bash
-
- 复制代码
本地通过navicat连接,会报如下错,原因是客户端不支持caching_sha2_password的密码加密方式。那么,我们修改用户密码加密方式为经典方式。
- > 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';
-
- 复制代码
测试步骤
创建数据库,创建用户表,插入数据,关闭数据库,在次启动查看数据是否存在
- create database test;
- use test;
-
- create table user(
- id int,
- age int,
- username varchar(20)
- )
-
- insert into user values(1,18,'张三');
-
- 复制代码
0a83ebe4baae为容器id,通过docker ps查询
- docker stop 0a83ebe4baae
- 复制代码
查看容器是否启动
可以看到已经停止
- docker restart mysql
- 复制代码
执行如下命令可以看到数据依然存在,没有丢失
- docker exec -it 0a83ebe4baae /bin/bash
-
- mysql -uroot -proot;
-
- show databases;
-
- use test;
-
- select * from user
- 复制代码
下载链接:www.docker.com/products/do…
如果嫌命令行比较麻烦,可以通过docker desktop来管理,也是比较方便,可以看到提供了重启,删除,暂停等按钮
也可以点击容器,快速进入里面进行命令行
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。