用户登录
用户注册

分享至

远程访问mariadb

  • 作者: 我去这也被注册了
  • 来源: 51数据库
  • 2020-09-21
1、基于mongo实现远程连接

[plain] view plaincopy

mongo -u admin -p admin 192.168.0.197:27017/pagedb

通过mongo实现连接,可以非常灵活的选择参数选项,参看命令帮助,如下所示:

[plain] view plaincopy

mongo --help
MongoDB shell version: 1.8.3
usage: mongo [options] [db address] [file names (ending in .js)]
db address can be:
foo foo database on local machine
192.169.0.5/foo foo database on 192.168.0.5 machine
192.169.0.5:9999/foo foo database on 192.168.0.5 machine on port 9999
options:
--shell run the shell after executing files
--nodb don't connect to mongod on startup - no 'db address'
arg expected
--quiet be less chatty
--port arg port to connect to
--host arg server to connect to
--eval arg evaluate javascript
-u [ --username ] arg username for authentication
-p [ --password ] arg password for authentication
-h [ --help ] show this usage information
--version show version information
--verbose increase verbosity
--ipv6 enable IPv6 support (disabled by default)

2、基于MongoDB支持的javascript实现远程连接

当你已经连接到一个远程的MongoDB数据库服务器(例如,通过mongo连接到192.168.0.184),现在想要在这个会话中连接另一个远程的数据库服务器(192.168.0.197),可以执行如下命令:

[plain] view plaincopy

> var x = new Mongo('192.168.0.197:27017')
> var ydb = x.getDB('pagedb');
> use ydb
switched to db ydb
> db
ydb
> ydb.page.findOne()
{
"_id" : ObjectId("4eded6a5bf3bfa0014000003"),
"content" : "巴黎是浪漫的城市,可是...",
"pubdate" : "2006-03-19",
"title" : "巴黎:从布鲁塞尔赶到巴黎",

上述通过MongoDB提供的JavaScript脚本,实现对另一个远程数据库服务器进行连接,操作指定数据库pagedb的page集合。

如果启用了安全认证模式,可以在获取数据库连接实例时,指定认证账号,例如:

[plain] view plaincopy

> var x = new Mongo('192.168.0.197:27017')
> var ydb = x.getDB('pagedb', 'shirdrn', '(jkfFS$343$_\=\,.F@3');
> use ydb
switched to db ydb



  目标 通过xx.xx.xx.xx:27017能访问到zz.zz.zz.zz:3717提供的mongodb云服务。 使用iptables 利用iptables的nat机制,可以方便的实现请求转发,首先需要ecs开启包转发的支持 echo 1 > /proc/sys/net/ipv4/ip_forward 配置转发规则 iptables -t nat -a prerouting -d xx.xx.xx.xx -p tcp --dport 27017 -j dnat --to-destination zz.zz.zz.zz:3717 iptables -t nat -a postrouting -d zz.zz.zz.zz -p tcp --dport 3717 -j snat --to-source yy.yy.yy.yy 此时你就能在任意能连通公网的机器上连接xx.xx.xx.xx:27017访问mongodb云服务,所有的请求都会转发到 zz.zz.zz.zz:3717上。需要注意的是,此时访问xx.xx.xx.xx:27017只能以单节点的方式直连,而不能按复制集的方式访问。 mongo --host xx.xx.xx.xx:27017 --authenticationdatabase admin -uroot -pxxx 使用haproxy haproxy支持tcp(四层)、http(七层)2种转发模式,类似于iptables,我们也可以利用haproxy来实现公网访问mongodb云数据库。 修改/etc/haproxy/haproxy.cfg配置文件内容,根据默认的配置文件稍作修改,主要配置tcp转发模式、前端、后端服务的地址信息。(haproxy版本为1.5.4) global log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon # turn on stats unix socket stats socket /var/lib/haproxy/stats defaults # 使用tcp转发模式 mode tcp log global option dontlognull option http-server-close option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s maxconn 3000 # 前端地址信息, xx.xx.xx.xx:27017 frontend main xx.xx.xx.xx:27017 default_backend app # 后端地址信息,zz.zz.zz.zz:3717 backend app balance roundrobin server app1 zz.zz.zz.zz:3717 check 启动haproxy haproxy -f /etc/haproxy/haproxy.cfg 此时你就能在任意能连通公网的机器上连接xx.xx.xx.xx:27017访问mongodb云服务,所有的请求都会转发到 zz.zz.zz.zz:3717上。需要注意的是,此时访问xx.xx.xx.xx:27017只能以单节点的方式直连,而不能按复制集的方式访问。 mongo --host xx.xx.xx.xx:27017 --authenticationdatabase admin -uroot -pxxx 以上服务同样适用于rds、redis云数据库,但切记仅能用于测试环境,生产环境请使用正确的姿势连接mongodb复制集。
软件
前端设计
程序设计
Java相关