云服务器Docker容器Mysql无法被远程访问原因汇总

1、docker-compose
简述:这是我自己无法连接的原因,应该比较少有人遇到,搜了下相关问题并没有看到同样的原因,所以写在前面。
情景:docker-compose搭建WordPress
过程:我在最初写docker-compose的时候并没有在db项那里加上端口,加上之后重新构建就可以访问了。

cat docker-compose.yml	#查看当前compose
docker-compose stop		#停止
vim docker-compose.yml	#编辑
docker-compose up -d --build	#重新构建
docker ps				#查看状态

在这里插入图片描述
更改前后容器端口状态变化:
在这里插入图片描述
在这里插入图片描述

netstat -tulpen	# 查看网络端口

在这里插入图片描述
2、无用户权限
①进入MySQL容器内部

docker exec -it 容器名 /bin/bash

②进入MySQL创建远程连接用户

mysql -uroot -p	#密码在docker-compose中填写了默认密码
use mysql;
create user 'test' identified by '123456';
# host为 % 表示不限制ip   localhost表示本机使用 plugin非mysql_native_password 则需要修改密码
select host,user,plugin,authentication_string from mysql.user;
# 赋予权限
grant all privileges on *.* to 'test'@'%'identified by '123456' with grant option; 
# 刷新权限
FLUSH PRIVILEGES;

正常上一步没问题就可以直接连接了,如果失败的话可能是下面的原因:

3、MySQL本地绑定IP
进入MySQL容器内部的配置文件目录,修改配置文件

# 配置文件路径/etc/mysql/mysql.conf.d/mysqld.cnf
cd /etc/mysql/mysql.conf.d
cat mysqld.cnf
# 如果存在	bind-address  = 127.0.0.1	将其注释掉
# 更改配置,重启容器后生效
docker-compose stop
docker-compose up -d

4、云服务器安全组策略
阿里云为例,直接搜索安全组进入,配置规则
在这里插入图片描述

在这里插入图片描述

最后,如果还是连接不上的话也可能是防火墙的原因,这里就不在赘述了。另外,操作过程中可以常用netstat -tulpen命令来查看端口是否被正常监听到。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值