docker安装 mysql8.0.21

教程官网

                 https://hub.docker.com/_/mysql

教程

在docker hub仓库里拉取最新版mysql镜像

[root@localhost mysql]# systemctl start docker        //启动docker-server
[root@localhost ~]# docker pull mysql     //拉取镜像

                   

运行mysql镜像为容器     

[root@localhost conf.d]# docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -v /root/mysql/conf.d:/etc/mysql/conf.d -v /rodata:/var/lib/mysql -d mysql  

[root@localhost conf.d]# docker ps   //查看正在运行的容器

注意

     为什么要在容器运行时设置Mysql 的root用户的密码?

           因为在centos上安装一个mysql软件包的时候,会让设置root用户的密码,所以,此时已经下载了mysql的软件环境,在运行镜像后,就相当于安装成功了mysql,所以要在开始运行镜像前设置root的密码,否则在运行完容器后,容器显示不能正常运行

      为什么要把docker容器中的目录自定义配置【把docker容器中访问的目录映射到宿主机centos外边】和把docker容器中的mysql保存的数据映射到宿主机外边?

       避免因为把docker容器删了,docker中目录下的相关配置和docker中mysql实例运行的数据都被删除,为了保证数据安全,即使docker容器删了,数据依然存在

--name :给要运行的docker容器实例起的名称
-p:  docker容器实例中的端口映射到外部端口【供外部访问】3306:3306【第一个3306为外部访问端口,第二个为docker容器中的mysql环境端口】
-e:  修改mysql的root用户的密码
-v:  把docker容器中mysql实例的/etc/mysql/conf.d映射到外部/root/mysql/conf.d目录下,当运行docker容器实例的时候,此目录就直接访问宿主机的/root/mysql/conf.d目录下的文件
-v:  把docker容器中的额mysql实例中的数据映射到外部/root/data目录下,对宿主机/root/data目录下数据的修改就是对docker容器中mysql运行实例产生的数据修改
-d: 以守护进程方式运行此容器


注:/var/lib/mysql是docker容器中的mysql实例运行产生的数据的目录

          进入docker中mysql实例内

[root@localhost mysql]# docker exec -it mysql bash         //进入到docker容器中mysql实例的伪终端【xshell窗口】
root@4bf2862a4a44:/# mysql -u root -p           //输入mysql实例root的用户名和密码【进入之后,就可以像正常的进入一个Mysql数据库进行操作了】

               

                  

         退出mysql

mysql> exit    //退出mysql
root@4bf2862a4a44:/# eixt      //退出docker容器中的伪xshell窗口,相当于另外一个可以输入linux命令的端口

navicat连接docker容器中的mysql

           在连接之前先把防火墙关了或者把对应的外部端口开发

          因为是下载的最新的mysql8.0版本以后的,所以在用navicat连接mysql的时候,会出现密码caching_sha2_password cannot be loaded:可查看这篇文章:https://blog.csdn.net/dsl59741/article/details/107891415

           

   spring boot连接mysql

          配置文件【其操作和基本的连接mysql的操作相同】


版权声明:本文为dsl59741原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。