由于我的 Nginx 和 Mysql 都是基于容器运行的,对于外网只暴露了 80 和 443 端口用于 web 服务,由于后续开发的网址导航功能使用 Serverless ,同时需要访问 Mysql 服务,因此打算暴露一个端口来远程调用。
添加一个 Mysql 新用户来授权远程访问,同时赋予该用户仅有的增删改查功能。
# 添加用户,并设置为远程可连接,同时设置密码
CREATE USER 'noxxxx'@'%' IDENTIFIED BY '12345';
含义:
赋予权限
GRANT SELECT, INSERT ,UPDATE, DELETE ON 数据库名.表名 TO 'noxxxx'@'%';
GRANT ALL ON *.* TO 'noxxxx'@'%';
GRANT ALL ON 数据库名.* TO 'noxxxx'@'%';
使用第三条命令即可对某个数据库下的所有表赋予全部权限。
生效权限配置
flush privileges
查看是否生效
phpmyadmin 里:
Sequel Pro 下,我们可以远程登录进入 mysql,并且只能看到被授权的数据库,增删改查功能可以使用。
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;
}
}