错误信息:
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"
错误信息:
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit
解决方法:
进入到cassandra的conf/cassandra-env.sh文件中,将以下内容删除
if [ "$JVM_VERSION" \> "1.7" ] ; then
JVM_OPTS="$JVM_OPTS -XX:+UseCondCardMark"
Fi
代码:
"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
错误信息:
Cannot execute query with bind variables
解决方法:
在execute中加入参数{prepare: true}
错误信息:
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。这个方法只是我当时偷懒想出来的,所以极其不建议用这个方法!
错误信息:
TypeError: Expected Number, obtained '12'
解决方法:
期望得到一个数字,却得到一个字符串’ ’,测试后ejs页面的值能够传递到对应的后台,但在执行execute语句时报错,说明页面传值时整数类型被html页面转化成了字符串类型,所以在后台接受页面传来的值时需要做一下转换,用Number()或者parseInt(),两种方法来实现类型转换。