cassandra学习错误问题整合

Cassandra错误问题整合

错误一:Cassandra启动错误(一)

错误信息:

The stack size specified is too small, Specify at least 228k

Error: Could not create the Java Virtual Machine.

Error: A fatal exception has occurred. Program will exit

 

解决方法:

修改配置文件cassandra-env.sh去安装目录查找该配置文件

JVM_OPTS="$JVM_OPTS -Xss180k" 改成 JVM_OPTS="$JVM_OPTS -Xss256k"

错误二:Cassandra启动错误(二)

错误信息:

Error: Could not create the Java Virtual Machine.

Error: A fatal exception has occurred. Program will exit


解决方法:

进入到cassandraconf/cassandra-env.sh文件中,将以下内容删除

if [ "$JVM_VERSION" \> "1.7" ] ; then

    JVM_OPTS="$JVM_OPTS -XX:+UseCondCardMark"

Fi

 

错误三:node中,cassandra连接报错

代码:

"use strict";
var cassandra = require('cassandra-driver');
var client = new cassandra.Client({ contactPoints: ['localhost']});
client.connect(function (err) {
  if (err) {
    client.shutdown();
    return console.error('There was an error when connecting', err);
  }
  console.log('Connected to cluster with %d host(s): %j', client.hosts.length, client.hosts.keys());
  console.log('Keyspaces: %j', Object.keys(client.metadata.keyspaces));
  console.log('Shutting down');
  client.shutdown();
});

错误信息:

 message: 'All host(s) tried for query failed. First host tried, 127.0.0.1:9042: Error: connect ECONNREFUSED 127.0.0.1:9042. See innerErrors.' }

 

解决方法:

无法连接127.0.0.1 9042端口 打开cassandra.yaml,修改start_native_transport值,从false-> true然后重启cassandra服务./cassandra -f

 

错误四:cassandra-driver数据库执行insert报错

错误信息:

Cannot execute query with bind variables

 

 

 

 

解决方法:

 

execute中加入参数{prepare: true}

 

 


错误五:nodecassandra-driver数据库操作报错(一)

错误信息:

Unknown code * for a consistency level\n

 


解决方法:

出现这个问题的主要原因是我 npm install cassandra-driver模块的版本太高是3.*,其默认的consistencylevel 为localOne 而我安装的cassandra版本是1.2.4还不支持localOne,可以有以下解决方法:

一:安装高版本的cassandra数据库,可以安装1.2.12及其以上版本,我后来安装的是1.2.14就可以了。

二:如果不想安装高版本的数据库,可以npm uninstall cassandra-driver卸载高版本的cassandra-driver模块,安装低版本的2.*,npm install [email protected].

三:这个方法不建议大家使用,因为需要修改引用的cassandra-driver模块的源码,即在node_modules/cassandra-driver/lib/client-options.js consistency: types.consistencies.localOne修改为 consistency: types.consistencies.one。这个方法只是我当时偷懒想出来的,所以极其不建议用这个方法!

错误六:nodecassandra-driver数据库操作报错(二)

错误信息:

TypeError: Expected Number, obtained '12'

 

解决方法:

期望得到一个数字,却得到一个字符串’ ’,测试后ejs页面的值能够传递到对应的后台,但在执行execute语句时报错,说明页面传值时整数类型被html页面转化成了字符串类型,所以在后台接受页面传来的值时需要做一下转换,用Number()或者parseInt(),两种方法来实现类型转换。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章