码迷,mamicode.com
首页 > 数据库 > 详细

cuckoo数据库变更

时间:2015-07-23 15:20:51      阅读:544      评论:0      收藏:0      [点我收藏+]

标签:

1、cuckoo版本升级

cuckoo默认的数据库为sqlite,默认连接方式为sqlite:///os.path.join(REPORT_ROOT, "db", "cuckoo.db")

升级cuckoo版本需要升级数据库版本,各个cuckoo版本的数据库有对应字段的修改,每个cuckoo版本的数据库有对应的

SCHEMA_VERSION,定义在lib/cuckoo/core/database.py中,因此升级cuckoo首先需要将数据库内容进行更新(主要是一些字段的改变和表内容的更新),方法:cd utils/db_migration/ && alembic upgrade head

技术分享

2、数据库变更

通过查看cuckoo.conf配置文件,cuckoo目前主要支持三种形式的数据库sqlite、postgresql、mysql

cuckoo中对数据库进行判断,如果虚拟机数量大于1并且数据库类型为sqlite,那么并行处理任务可能会有一些问题

技术分享

2.1、切换mysql

1、安装mysql(略过)

2、创建cuckoo数据库

mysql –uroot –ppassword 进入mysql数据库

create database cuckoo;  数据库路径在/polydata/data/db/mysql

3、修改配置文件

cuckoo.conf—>database—>connection =  mysql://root:password@localhost/cuckoo

4、安装MySQLdb模块

sudo apt-get install python-mysqldb

python交互命令中如果能import MySQLdb则安装成功

如果未安装或安装失败,会报导入数据库驱动问题

raise CuckooDependencyError("Missing database driver, unable to import %s (install with `pip install %s`)" % (lib, lib))

5、解决不能通过mysql .sock连接MySQL问题

现象:Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘ (2)

解决方法:ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock

reference:http://blog.csdn.net/ixidof/article/details/5958904

至此cuckoo就可以使用mysql数据库,如果出现CuckooDatabaseError,即

"DB schema version mismatch: found {0}, expected {1}. "
"Try to apply all migrations (cd utils/db_migration/ && "
"alembic upgrade head).".format(last.version_num, SCHEMA_VERSION))
原因:数据库中会有一个字段alembic_version,其中的version_num就是定义的SCHEMA_VERSION,通过此内容来判断不同的cuckoo版本,如果安装了高版本的cuckoo,现在想使用低版本的cuckoo,则只能先删除该数据库或者直接更改该数据库的version_num

 

2.2、切换postgresql


cuckoo数据库变更

标签:

原文地址:http://www.cnblogs.com/lunachy/p/4670511.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!