前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker 下 Nginx 端口转发至 Mysql 服务

Docker 下 Nginx 端口转发至 Mysql 服务

作者头像
子润先生
修改2021-06-28 10:31:47
1.1K0
修改2021-06-28 10:31:47
举报

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

Mysql 用户配置

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

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

含义:

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

赋予权限

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

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

生效权限配置

代码语言:javascript
复制
flush privileges

查看是否生效

phpmyadmin 里:

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

Nginx 端口转发

代码语言:javascript
复制
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 端口转发
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档