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


1 架构如下

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


架构说明

  线上数据库,只授权了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 安装


[plain] view plain copy

  1. # yum list mysql-proxy    

  2. # yum -y install mysql-proxy  

[plain] view plain copy

  1. # service iptables stop  


3.2 配置


vi /etc/mysql-proxy.cnf 


[plain] view plain copy

  1. [mysql-proxy]  

  2. daemon = true  

  3. pid-file = /var/run/mysql-proxy.pid  

  4. log-file = /var/log/mysql-proxy.log  

  5. log-level = debug  

  6. max-open-files = 1024  

  7. plugins = admin,proxy  

  8. user = mysql-proxy  

  9. #  

  10. #Proxy Configuration(代理开发机)  

  11. proxy-address = 192.168.1.101:3316  

  12.   

  13. #线上数据库地址  

  14. proxy-backend-addresses = 192.168.2.101:3306  

  15. #proxy-read-only-backend-addresses =   

  16. #proxy-lua-script =   

  17. #proxy-skip-profiling = true  

  18. #  

  19. # Admin Configuration  

  20. #admin-address = 0.0.0.0:4041  

  21. admin-lua-script = /usr/lib64/mysql-proxy/lua/admin.lua  

  22. admin-username = admin  

  23. admin-password = admin  


3.3 启动


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


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


4 navicat连接

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


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

本文出自http://blog.csdn.net/clevercode/article/details/52355954