无法使用cqlsh连接到cassandra

时间:2015-11-13 10:46:13

标签: cassandra connection

我想连接到cassandra但是遇到了这个错误:

$ bin/cqlsh
Connection error: ('Unable to connect to any servers', {'192.168.1.200': error(10061, "Tried connecting to [('192.168.1.200', 9042)]. Last error: No connection could be made because the target machine actively refused it")})

7 个答案:

答案 0 :(得分:1)

检查您是否已启动Cassandra服务器,然后提供port$ bin/cqlsh 127.0.0.1 4092 作为参数。

#import "SettingsViewController.h"
#import "Category.h"
#import "Subject.h"
#import "QuotesAppDelegate.h"

@implementation SettingsViewController

@synthesize subjects, categories, selectedSubject, selectedCategory, selectedTabs;

static NSString *kCellIdentifier = @"MyIdentifier";

...
- (void)viewDidLoad
{
    [super viewDidLoad];

    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] 
                                              initWithBarButtonSystemItem:UIBarButtonSystemItemCancel 
                                              target:self action:@selector(cancel_Clicked:)];

    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] 
                                               initWithBarButtonSystemItem:UIBarButtonSystemItemSave 
                                               target:self action:@selector(save_Clicked:)];

...

- (void) cancel_Clicked:(id)sender {

    //Dismiss the controller.
    [self.navigationController dismissViewControllerAnimated:YES completion: nil];

}

- (void) save_Clicked:(id)sender {

    for (Subject *s in selectedTabs){
        //NSLog(@"Set selected subject %@ to %ld", s.title, (long)s.active);

        //UPDATE THE ACTIVE STATUS ON THE SELECTED SUBJECTS
        [s setActiveStatus:s.active];

        //UPDATE ARRAY
        for (Subject *sub in self.subjects){

            if (sub.subject_id == s.subject_id){
                [sub setActive:s.active];
            }

        }

    }

    //RELOAD WHOLE DATABASE
    QuotesAppDelegate *appDelegate = (QuotesAppDelegate *)[[UIApplication sharedApplication] delegate];
    [appDelegate populateFromDatabase];

    self.categories = [appDelegate activeCategories];
    self.subjects = [appDelegate activeSubjects];

    [self.tableView reloadData];
    [self.navigationController dismissViewControllerAnimated:YES completion: nil];

}

答案 1 :(得分:1)

非常简单。

机器主动拒绝,因为您的系统上没有运行cassandra。按照以下步骤彻底摆脱这个麻烦:

  1. 从DataStax安装 Cassandra (Datastax-DDC; Cassandra第3版)。
  2. 转到~\installation\path\DataStax-DDC\apache-cassandra\bin
  3. 在那里打开cmd。 (如果您使用的是Windows 8或更高版本,请使用Alt + F + P打开它。
  4. 输入cassandra -f这会在窗口上生成很多内容,您必须将最后一行设为INFO 11:32:31 Created default superuser role 'cassandra'
  5. 现在在同一个文件夹中打开另一个cmd窗口。
  6. 输入cqlsh
  7. 这应该给你一个提示,没有任何错误。

    我还发现如果我在Archived version of Cassandra使用cassadra v2.x ,则不会弹出此错误。 我不知道为什么:((如果你发现请注释)。

    因此,如果上述步骤不起作用,您可以随时返回Cassandra v2.x.

    干杯。

答案 2 :(得分:0)

我在Win32 Windows 7机器上也遇到了同样的问题。

  1. 检查是否正确安装了JAVA并设置了JAVA_HOME变量。
  2. 检查完Java安装并设置JAVA_HOME后,卸载Cassandra并重新安装。
  3. 希望这可以解决问题。应用上述两个步骤解决了我的问题。

答案 3 :(得分:0)

我遇到了同样的问题。这对我有用。

转到任何目录,例如E:\(不必与cassandra安装相同的光盘)

创建以下目录

E:\cassandra\storage\commitlogs
E:\cassandra\storage\data
E:\cassandra\storage\savedcaches

然后转到你的cassandra安装conf路径。就我而言。

D:\DataStax-DDC\apache-cassandra\conf

打开cassandra.yaml。编辑包含以下内容的行:data_file_directories, commitlog_directory, saved_caches_directory,看起来像下面的代码(根据您创建文件夹的位置更改路径)

data_file_directories:
    - E:\cassandra\storage\data

commitlog_directory: E:\cassandra\storage\commitlog

saved_caches_directory: E:\cassandra\storage\savedcaches

然后打开cmd(我是以管理员身份执行,但未检查是否有必要)到您的cassandra安装bin路径。就我而言。

D:\DataStax-DDC\apache-cassandra\bin

运行cassandra -f

很多东西都会记录到你的屏幕上。 您现在应该可以毫无问题地运行cqlsh和所有其他内容。

编辑:操作系统是windows10 64bit

Edit2:如果它在一段时间后停止工作,请检查服务是否使用nodetool status运行。如果不遵循this指令。

答案 4 :(得分:0)

您需要为cassandra cqlsh连接提及主机用户密码。默认cassandra cqlsh 用户 cassandra 密码 cassandra

$ bin/cqlsh <host> -u cassandra -p cassandra

答案 5 :(得分:0)

我也有同样的问题。我应用了Google和youtube上给出的许多方法,但在我的情况下它们都无效。最后,我应用了以下3个步骤,在我的情况下它可以正常工作:-

  1. 创建一个文件夹,在C或D中没有任何空间,这是系统驱动器中的任何一个。例如:-C:\ cassandra
  2. 在此文件夹中安装Cassandra,而不是在“程序文件”中安装。 安装后,将像这样-C:\ cassandra \ apache-cassandra-3.11.6
  3. 复制安装在bin文件夹中的python 2.7,即C:\ cassandra \ apache-cassandra-3.11.6 \ bin

现在您的程序已准备就绪,可以开始工作了。

答案 6 :(得分:0)

没有特殊的方法可以简单地连接cqlsh,如下所示:-

$ bin / cqlsh 127.0.0.1(主机IP)9042或$ bin / cqlsh 127.0.0.1(主机IP)9160(如果是Cassandra的旧版本)

如果将cqlsh连接到远程主机,请不要忘记检查端口连接。另外,如果默认启用,则可以使用用户名/密码。