docker 安装8.0.31 版本的mysql
1、访问https://hub.docker.com/
2、在查询框输入mysql
3、点击tag标签
4、下拉或者翻页找到8.0.31
5、复制右面的命令,并且执行
docker pull mysql:8.0.31
6、查看镜像
7、容器运行mysql
docker run -d -p 3307:3306 --name mysqltest -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.31
-d表示在后台运行,不随当前命令行窗口的退出而退出
--name给容器起一个别名,以后可以通过这个别名管理此容器
-p 3306:3307把宿主机的3307端口映射到Mysql容器的3306端口
-e MySQL容器的环境配置,设置root密码
最后mysql:8.0.31是使用的镜像名字
8、进入容器,f5227fac15ce 是mysql容器id,进入后可以看见前面是bash开头,相当于mysql容器内部的bash命令行
docker exec -it f5227fac15ce /bin/bash
9、执行mysql 连接命令
mysql -u root -p
10、输入mysql的root密码 XXX ,会出现mysql字样,表明连接成功
11、输入show databases; 查看当前数据库
12、exit 退出mysql客户端
13、接着上面再次输入exit ,直接退出mysql容器的bash命令行
14、使用navicat 远程连接docker中的mysql容器,成功连接
展开数据库
15 、docker mysql默认区分表名大小写的和数据库名大小写的,但是数据库名大小写无法修改,启动mysql容器并且关闭表名大小写有两种方式:
15.1 启动容器时代参数启动,参数顺序一定要对,–lower_case_table_names=1要加在镜像名后面,镜像名前面是参数,后面是mysql配置,不然会报错
docker run -d -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysqlcloselower mysql:8.0.31 --lower_case_table_names=1
然后执行docker exec -it 60330189837b /bin/bash进入容器,然后登陆mysql 使用下面命令查询
show global variables like '%lower_case%';
15.2 第二种是修改mysql的配置文件
16、设置 Docker数据卷(Volume)
Docker 容器原则上是短暂的,如果容器被删除,任何数据或配置都可能会丢失。然而,Docker Volume提供了一种机制来保存在 Docker 容器内创建的数据。它们是 Docker 用于存储 Docker 容器 持久数据的首选机制。默认情况下,MySQL 将其数据文件存储在该 /var/lib/mysql目录中。因此,在部署之前,您需要设置一个 Docker Volume来持久化您的数据库。否则,当容器重新启动时,您的数据将丢失。
17、 Docker Hub官方教程文档中提到两种方式去运行新容器:方法一:配置选项作为标志传递给mysqld,不用写xxx.cnf配置文件
docker run -d -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysqlcloselower mysql:8.0.31 --lower_case_table_names=1
18、方法二创建容器
:使用自定义的 custom.cnf 配置文件。