scylladb:设置监听主机IP为非默认localhost

前面介绍了通过scylladb提供的driver,编写java代码,然后操作scylladb数据库。但是因为scylladb默认采用的监听地址是localhost即127.0.0.1,如果想从外部连接scylladb是不行的,所以代码编写完成,需要打包,然后部署到scylladb服务器运行。

这里解决这个问题,让外部程序可以通过ip也能访问scylladb。scylladb安装成功之后,在/etc/scylla目录下会生成一个scylla.yaml的配置文件,我们可以看看这个配置文件。

scylla.yaml配置文件中有这么一段:

本来一般的address,如果没有特别的说明,直接设置为0.0.0.0就表示容许外部访问,而且能够监听本机。但是根据这个提示,好像不能直接设置为0.0.0.0,根据本人的测试,设置0.0.0.0可以启动scylladb,scylladb的进程都在,但是监听端口9042一直起不来,还真的就是这里所说的那样,设置为0.0.0.0就会出错。

后来将配置文件中所有的localhost或者127.0.0.1统统改为本机对外IP-10.119.9.149,这样再次启动scylladb,不久之后,9042端口也开启了。

到了这里,scylladb监听地址已经修改完毕,并且已经看到了9042端口开启。 

这里利用之前的一段程序测试远程连接scylladb,并查询数据:

package com.xxx.scylladbdemo;
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.Row;
import com.datastax.driver.core.Session;
public class App {
	public static String[] contact_points = {"10.119.9.149"};
	public static int port = 9042;	
	private static Cluster cluster;
	private static Session session;
	
	public static void connect(){
		cluster = Cluster.builder().addContactPoints(contact_points).withPort(port).build();
		System.out.printf("connected to cluster : %s%n", cluster.getMetadata().getClusterName());
		session = cluster.connect();
	}
	
	public static void query(){
		ResultSet rs = session.execute("select * from domestic.student");
		System.out.printf("%-30s\t%-20s\t%-20s%n", "ID","Name","Age");
		for(Row row:rs){
			System.out.printf("%-30d\t%-20s\t%-20d%n", row.getInt("id"),row.getString("name"),row.getInt("age"));
		}
	}
	
	public static void close(){
		session.close();
		cluster.close();
		System.out.println("close.");
	}
	
    public static void main( String[] args ){
    	connect();
    	query();
    	close();
    }
}

运行结果如下:

这个打印结果说明通过java程序能够通过IP远程连接scylladb数据库,并查询到了数据。 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luffy5459

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值