docker中安装mysql并远程连接访问

docker中安装mysql并远程连接访问

之前我发了在windows7中安装docker,这边安装docker完成后,为了提要docker的便利方便,这边来安装mysql以做体验,不过安装完成后,给人感觉docker真的不在污染自己电脑环境,可以简单安装软件,而mysql是比较安装繁琐,卸载麻烦的

windows中安装mysql

  1. 刚开始进入docker的控制界面,这边还是推荐使用安装目录下的start.sh来进入,因为这个进入比较方便可以复制黏贴,当然也可以直接cmd进入;在这里插入图片描述
  2. 在打开界面后使用命令
    2.1 搜索mysql
docker search mysql:5.7

这里搜索命令,如果后面不添加版本号的话,用 docker search mysql 搜索的结果 都是 最新的版本(可以跳过)
2.2 下载mysql

docker pull mysql:5.7

这里的命令是下载搜索到的,这边pull后面的名称 根据search中选择的,同理也是 可以不接版本号,那么直接下载的是最新的 8.0版本,有需要朋友可以选择5.6或者5.5修改版本号即可
2.3 运行mysql
下载好后使用命令来将加载的镜像打包成容器

docker run --name dockermysql  -p 3307:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql

参数解析
run:运行一个容器
-d 以守护进程运行(后台运行) 最后的mysql是镜像名称
-p:进行端口映射,用于暴露给外界让其访问,第一端口是对外暴露的,第二个是对内暴露的接口
-e:初始化root用户的密码,MYSQL_ROOT_PASSWORD 设置mysql登录密码
–name:自定义容器名称
这边运行后可以用命令来查看docker运行容器的情况

docker ps

查看正在运行的容器

docker ps -a

查看所有的容器,包括停止的
在这里插入图片描述
前者是容器的id,后者是名称

2.4 进入mysql修改

docker exec -it mysql:5.7 bash 

进入容器内部 dockermysql 是上边运行时为容器取的别名 也可以用id替代
注:如果进入失败的话,是权限问题,可以用管理员运行cmd 来进入操作,或者在命令前面加winpty 在输入命令操作即可

 mysql -u root -p

进入mysql内部,之后输入密码

grant all privileges on *.*  to ‘root’@’%’ ; 

给用于授予权限

flush privileges;

刷新服务

之后退回即可,退出可以用exit 也可以ctrl+d

远程navicat访问mysql

  1. 命令获取ip
docker-machine.exe ip

来获取docker的ip
在这里插入图片描述

  1. 通过虚拟化操作获取ip
    完成上述操作启动mysql后,就是要用navicat来连接mysql了,首先docker在windos上启动是虚拟环境启动的,所以用lockhost来作为连接访问是失败的,所以需要在虚拟机中查看配置的情况
    在这里插入图片描述
    查看虚拟机设置
    在这里插入图片描述
    切换至 “全局工具” 查看 适配器2的设置:

在这里插入图片描述
因为环境中只启动了mysql一个容器,故而从 192.168.99.100开始;

在本机打开 navicat新建连接 服务器地址填写 192.168.99.100 测试连接,成功连入!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要让CentOS 7上的Docker安装MySQL可以远程连接,需要进行以下步骤: 1. 首先,确保CentOS 7上已经安装DockerDocker Compose。可以通过运行以下命令来检查它们的版本: ``` docker version docker-compose version ``` 2. 下载MySQLDocker镜像并生成一个新的容器。可以运行以下命令来完成此步骤: ``` docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=your_password -p 3306:3306 mysql:latest ``` 3. 在此步骤,注意将`your_password`替换为您自己设置的密码。此命令会创建一个名为`mysql`的容器,并将MySQL的默认端口3306映射到主机的3306端口。 4. 检查Docker容器是否正在运行,并且3306端口是否已被监听。可以使用以下命令来检查它们: ``` docker ps netstat -tuln | grep 3306 ``` 5. 确保CentOS 7防火墙已正确配置以允许从远程访问MySQL的3306端口。可以使用以下命令来打开3306端口: ``` firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload ``` 6. 现在,可以从远程机器使用MySQL客户端连接到CentOS 7上的Docker运行的MySQL实例。使用以下命令连接到MySQL服务器: ``` mysql -u root -p -h your_server_ip ``` 请注意将`your_server_ip`替换为CentOS 7主机的IP地址,将提示输入密码即可。 通过执行以上步骤,您应该能够远程连接到CentOS 7上运行的Docker MySQL实例。 ### 回答2: 当在CentOS 7上使用Docker安装MySQL时,可能会遇到无法远程连接的问题。以下是一些可能的解决方法: 1. 检查Docker容器网络设置:确认Docker容器是否使用正确的网络模式。可以使用`docker ps`命令查看容器的详细信息,确认容器是否使用了`--network`参数或正确的`network_mode`设置。 2. 检查MySQL配置文件:在Docker容器内部,打开MySQL配置文件`/etc/mysql/my.cnf`,确保`bind-address`设置为`0.0.0.0`,允许所有IP访问数据库。 3. 检查容器端口映射:通过`docker ps`命令查看MySQL容器的端口映射情况,确保将MySQL容器的端口映射到正确的主机端口上。例如,如果容器内部MySQL端口是3306,则可以通过`docker run`命令的`-p`参数将其映射到主机上的端口。 4. 防火墙配置:如果在主机上启用了防火墙,可能需要打开MySQL所用的端口。可以使用以下命令将3306端口添加到防火墙规则: ``` sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent sudo firewall-cmd --reload ``` 5. 检查MySQL用户权限:确保在MySQL容器,用户拥有远程连接MySQL的权限。可以通过以下命令登录MySQL容器: ``` docker exec -it <mysql_container_id> bash mysql -u root -p ``` 然后在MySQL命令行,执行以下命令检查用户权限: ``` SHOW GRANTS FOR '<username>'@'%' ; ``` 如果没有远程连接权限,可以通过以下命令为该用户添加权限: ``` GRANT ALL PRIVILEGES ON *.* TO '<username>'@'%' IDENTIFIED BY '<password>' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 6. 检查主机网络连接:确保从远程主机可以ping通CentOS 7主机的IP地址。如果ping不通,可能是网络配置的问题,需要检查网络设置和路由。 希望以上解决方法能够帮助你解决无法远程连接的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值