关闭

mysql-proxy解决只能内网访问线上数据库问题

3174人阅读 评论(0) 收藏 举报
分类:

CleverCode的线上数据库,只能通过内网连接到线上。每次都需要登录ssh终端上操作。为了操作方便在在内网开发机上装了一个mysql-proxy去访问线上数据库。


1 架构如下



架构说明

  线上数据库,只授权了192.168.1.*网段的用户能够访问线上数据库。其它网段都不能访问。


2 线上数据库创建用户

登录到192.168.2.101机器,创建一个授权用户。

# mysql -uclevercode -pc123456 -h 192.168.2.101 -P 3306

mysql>GRANT ALL PRIVILEGES ON *.* TO 'clevercode'@'192.168.1.*' IDENTIFIED BY 'c123456' WITH GRANT OPTION;
mysql>FLUSH RIVILEGES;


3  mysql-proxy安装与配置

3.1 安装

# yum list mysql-proxy  
# yum -y install mysql-proxy
# service iptables stop

3.2 配置

vi /etc/mysql-proxy.cnf 

[mysql-proxy]
daemon = true
pid-file = /var/run/mysql-proxy.pid
log-file = /var/log/mysql-proxy.log
log-level = debug
max-open-files = 1024
plugins = admin,proxy
user = mysql-proxy
#
#Proxy Configuration(代理开发机)
proxy-address = 192.168.1.101:3316

#线上数据库地址
proxy-backend-addresses = 192.168.2.101:3306
#proxy-read-only-backend-addresses = 
#proxy-lua-script = 
#proxy-skip-profiling = true
#
# Admin Configuration
#admin-address = 0.0.0.0:4041
admin-lua-script = /usr/lib64/mysql-proxy/lua/admin.lua
admin-username = admin
admin-password = admin

3.3 启动

# mysql-proxy --defaults-file=/etc/mysql-proxy.cnf


可以配置多个配置文件,来代理不同的线上数据库。


4 navicat连接



只要自己的windows机器能够访问192.168.1.101的3316端口。msyql-proxy就能够代理到192.168.2.101的3306端口。这个密码要用线上数据库的密码。


1
0
查看评论

怎么在Navicat中设置HTTP属性

连接到服务器的方法有很多,HTTP通道就是其中的一种。其使用范围通常是在MySQL、PostgreSQL、SQLite 和MariaDB这几种之内。与网络服务器使用相同的通讯协定(http://)和端口(端口80),这是当互联网服务供应商不允许直接连接,但允许创建HTTP连接时使用。下面来给大家介绍...
  • mathsoftware
  • mathsoftware
  • 2016-06-21 13:54
  • 856

ProxySQL--灵活强大的MySQL代理层

本文是我在学习和验证ProxySQL的过程中,从初识(对其机制猜想或者仅凭几次命令的结果臆断其原理),到逐渐深入(模拟各种场景测试、抓包分析、与作者交流)过程中的思路和方法和结论的记录。ProxySQL项目网址亮点: 几乎所有的配置均可在线更改(其配置数据基于SQLite存储),无需重启proxys...
  • kai404
  • kai404
  • 2016-09-25 22:16
  • 13051

nginx支持tcp代理mysql

公司有一个公网ip,有公网ip(222.222.222.222)那台服务器上装的nginx,mysql装在公司另外一台服务器上假设ip为192.168.0.7,我想利用公网ip去访问内网电脑上mysql就可以利用我下面的配置操作了 nginx1.9及以上才可以支持tcp协议; window上直接...
  • wow4464
  • wow4464
  • 2016-04-28 15:23
  • 6015

MySQL Proxy - 官方的MySQL连接池和代理工具

MySQL Proxy 可以理解为类似SQL Relay的连接池工具,不过它要更强大一点,看看官方描述的特性:* load balancing* failover* query analysis* query filtering and modification* ... and many more...
  • heiyeshuwu
  • heiyeshuwu
  • 2007-09-11 21:36
  • 9193

MySQL访问权限系统和访问控制

6.1一般安全问题 6.1.1安全指南       运行MySQL时,请遵循以下准则:      (1)不要给任何人(MySQL root帐户除外 )访问 数据库中的 user表mysql!这是至关重要的。   ...
  • anzhen0429
  • anzhen0429
  • 2017-07-01 18:29
  • 841

通过中间服务器做代理(端口转发)远程连接数据库

最近遇到了一个远程连接数据库服务器的问题,网上查了很久,最后在同事的指导下终于连上了,记录一下。 简单的说就是一个端口转发的问题。 问题描述如下: 假设我本地是A,中间服务器是B,数据库服务器是C。 A可以访问B,B可以访问C,但是A不能直接访问C。A -> B -> C 那么如...
  • sunxun1122
  • sunxun1122
  • 2015-05-15 15:35
  • 2224

Mysql---1.数据库中间件(代理) 2.集群HA (同步复制)

=============================================== 今天学习的内容: 1.数据库中间件(代理) 2.集群HA (同步复制) (AB replication 默认选择异步,mysql5.7版本有了半同步) -----------------...
  • lihuaichen
  • lihuaichen
  • 2016-09-07 21:44
  • 1255

mysql关于grant与revoke的详细教程

MySQL关于grant与revoke的详细教程 grant命令主要是用来授权 语法: 1   grant 权限 on 数据库对象 to 用户;   //仅给某用户授予某数据库对象某权限    &#...
  • lvqingyao520
  • lvqingyao520
  • 2018-01-05 20:57
  • 109

mysql分布式集群实现原理

分布式集群  做mysql集群,例如:利用mysql cluster ,mysql proxy,mysql replication,drdb等等 有人会问mysql集群,根分表有什么关系吗?虽然它不是实际意义上的分表,但是它启到了分表的作用,做集群的意义是什么呢?为一个数据库减轻负担,说白...
  • wenjie4892543
  • wenjie4892543
  • 2016-06-30 16:41
  • 16962

mysql proxy user代理用户(伪装用户)

参考懒得去死的博客,网址:http://blog.csdn.net/yueliangdao0608/article/details/7579836 自Mysql 5.5以来新增proxy代理用户,表在proxies_priv中 1安装mysql安装的插件 install plugi...
  • zyzn1425077119
  • zyzn1425077119
  • 2017-04-20 11:38
  • 523
    个人资料
    • 访问:613887次
    • 积分:7199
    • 等级:
    • 排名:第3742名
    • 原创:169篇
    • 转载:6篇
    • 译文:0篇
    • 评论:136条
    推荐微信公众号:PHP专家

             PHP专家(phpexpert)。我们一起成为PHP专家!


    博客专栏
    最新评论