Docker配置MySQL容器+远程连接(全流程) |
您所在的位置:网站首页 › 如何查看docker容器是否可以连接外网设备 › Docker配置MySQL容器+远程连接(全流程) |
最近在复习项目服务器部署,想要重新配置一个Mysql的Docker容器,发现很多知识有点记不清了,在这里记录一下。 目录 一、Docker配置MySQL容器(全流程)第一步:拉取MySQL镜像第二步:根据镜像生成容器第三步:为MySQL容器配置远程连接访问权限 一、Docker配置MySQL容器(全流程)需要支持 Linux服务器Docker常用的Linux和Docker命令 第一步:拉取MySQL镜像1、拉取MySQL镜像(这里一般不会出现什么问题) # docker pull mysqlPS:可能有点小慢,但速度还是能肉眼所见的,若出现下载太慢,亦或者连接超时。可以回忆一下Docker的库的国内代理是否配置了,若未配置则花上5分钟配置一下;若配置过则可先排除网络问题,然后考虑换个国内代理。 2、查看本地镜像,确认是否拉取成功 docker images [root@iZ2ze2x2gvxfbo4c9b3Z docker]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/mysql latest 0d64f46acfd1 5 months ago 544 MB(成功的话,列表内会出现docker.io//mysql) 这里拉取的是MySQL:latest版本,也可以使用$ docker pull mysql:5.7下载对应版本(以5.7为例) 第二步:根据镜像生成容器1、通过镜像生成容器 docker run # docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 --name my_mysql mysql 注释 [ -d ]: 后台运行; [ -p ]: 配置端口映射(容器的3306映射到Linux的3307端口) [ -e ]: 添加配置信息(密码为123456) [ --name ]: 容器名字 mysql :镜像名字2、查看目录运行中的容器列表 docker ps [root@iZ2ze2x2gv8gqxfbo4c9b3Z docker]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 382eacf64ae4 mysql "docker-entrypoint..." 3 hours ago Up 3 hours 33060/tcp, 0.0.0.0:3307->3306/tcp my_mysql f1891859be3a mysql "docker-entrypoint..." 4 months ago Up 4 months 0.0.0.0:3306->3306/tcp, 33060/tcp mysql01 bb2a2366bae9 tomcat "catalina.sh run" 5 months ago Up 5 months 0.0.0.0:8888->8080/tcp loving_edison其中第一条就是我们刚创建的MySQL镜像了 3、进入容器内简单测试 docker exec -it my_mysql bash [root@iZ2ze2x2gv8gqxfbo4c9b3Z docker]# docker exec -it my_mysql bash root@382eacf64ae4:/# 此时发现,命令行的前缀已经变成了382eacf64ae4,就是我们新建的my_mysql的容器ID。此时就相当于进入了容器内部的命令窗口。此时输入 mysql -uroot -p123456 root@382eacf64ae4:/# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 8.0.21 MySQL Community Server - GPL Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>到此为止,容器就已经创建完毕。 第三步:为MySQL容器配置远程连接访问权限1、此时测试远程连接 以Navicat 为例,SQLyog管理软件等同理2、连接测试 因未配置权限一定会出现报错 但这里可能出现另外一种报错,一同说一下把 报错1: 2003 一定会出现的另一个错误 – 远程访问权限错误 报错二 1251 进入容器,操作数据库给root分配远程访问权限 1、进入容器可使用 docker exec -it my_mysql bash进入,这里不再贴代码了。 2、登录进入mysql ,使用 mysql -uroot -p123456登录mysql数据库 3、给root用户分配权限 alter user 'root'@'%' identified with mysql_native_password by '123456'; mysql> alter user 'root'@'%' identified with mysql_native_password by '123456'; Query OK, 0 rows affected (0.00 sec)4、刷新权限 flush privileges; mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)5、测试连接 写在后边,这个容器其实只是简单测试MySQL容器,其中的数据,Docker一但重启就会消失,真正在正式使用的时候,会将MySQL中的数据、日志、配置文件等重要文件亦或是其他重要文件进行挂载操作。防止数据丢失。(具体内容将会在另一篇文章中发表(总结中)) 最后,总结不易,如果能帮到大家,给博主点鼓励点点小赞,万分感谢。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |