centos使用docker运行mysql后,远程连接需要开放端口

在centos中使用docker运行mysql

 docker run --name mysql-test1 -e MYSQL_ROOT_PASSWORD=123456 -p 3308:3306 -d mysql:5.7

MYSQL_ROOT_PASSWORD就是root用户的密码。
然后如果这时使用别的电脑访问docker主机中的3308端口是不能连接上mysql的,因为centos需要向外界开放3308端口。

0、未开启时连接报错

在这里插入图片描述

1、查询3308是否开启

在这里插入图片描述

2、开启3308

在这里插入图片描述

3、重新加载

在这里插入图片描述

4、可以看见3308端口已经开启

在这里插入图片描述

5、如果还不可以远程访问,参考下面两个博客。

https://blog.csdn.net/wshk918/article/details/103266523
https://blog.csdn.net/weixin_42459563/article/details/80924634
两种不同的尝试:

(1)这里主要mysql_native_password这个。可以看第二篇博客有介绍
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的mysql密码' ;
(2)赋予权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
或
GRANT ALL ON *.* TO 'root'@'%';

以后用到任何端口前都要看一下时候已经开启。centos一般都没有开。如果用阿里云服务器什么的,还需要配置安全组。

你可能感兴趣的:(mysql,docker,docker,mysql)