首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Docker 下 Nginx 端口转发至 Mysql 服务

Docker 下 Nginx 端口转发至 Mysql 服务

作者头像
子润先生
修改2021-06-28 10:31:47
修改2021-06-28 10:31:47
1.3K00
代码可运行
举报
运行总次数:0
代码可运行

由于我的 Nginx 和 Mysql 都是基于容器运行的,对于外网只暴露了 80 和 443 端口用于 web 服务,由于后续开发的网址导航功能使用 Serverless ,同时需要访问 Mysql 服务,因此打算暴露一个端口来远程调用。

Mysql 用户配置

添加一个 Mysql 新用户来授权远程访问,同时赋予该用户仅有的增删改查功能。

代码语言:javascript
代码运行次数:0
运行
复制
# 添加用户,并设置为远程可连接,同时设置密码
CREATE USER 'noxxxx'@'%' IDENTIFIED BY '12345';

含义:

  • 主机名称:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%
  • 登录密码:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器

赋予权限

代码语言:javascript
代码运行次数:0
运行
复制
GRANT SELECT, INSERT ,UPDATE, DELETE ON 数据库名.表名 TO 'noxxxx'@'%';
GRANT ALL ON *.* TO 'noxxxx'@'%';
GRANT ALL ON 数据库名.* TO 'noxxxx'@'%';

使用第三条命令即可对某个数据库下的所有表赋予全部权限。

生效权限配置

代码语言:javascript
代码运行次数:0
运行
复制
flush privileges

查看是否生效

phpmyadmin 里:

Sequel Pro 下,我们可以远程登录进入 mysql,并且只能看到被授权的数据库,增删改查功能可以使用。

Nginx 端口转发

代码语言:javascript
代码运行次数:0
运行
复制
stream {
    upstream mysqlport {
       hash $remote_addr consistent;
       server container_name:3306 weight=5 max_fails=3 fail_timeout=30s;
    }
    server {
       listen 4430;
       proxy_connect_timeout 10s;
       proxy_timeout 300s;
       proxy_pass mysqlport;
    }
}

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Mysql 用户配置
  • Nginx 端口转发
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档