Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 更改数据库目录_Linux_Sockets_Couchdb - Fatal编程技术网

Linux 更改数据库目录

Linux 更改数据库目录,linux,sockets,couchdb,Linux,Sockets,Couchdb,我正在尝试更改coach数据库的目录。我正在使用python脚本将csv文件导入CouchDB。脚本运行正常。这里只是以防万一: from couchdbkit import Server, Database from couchdbkit.loaders import FileSystemDocsLoader from csv import DictReader import sys, subprocess, math, os def parseDoc(doc): for k,v i

我正在尝试更改coach数据库的目录。我正在使用python脚本将csv文件导入CouchDB。脚本运行正常。这里只是以防万一:

from couchdbkit import Server, Database
from couchdbkit.loaders import FileSystemDocsLoader
from csv import DictReader
import sys, subprocess, math, os

def parseDoc(doc):
    for k,v in doc.items():
        if (isinstance(v,str)):
            #print k, v, v.isdigit()
            # #see if this string is really an int or a float
            if v.isdigit()==True: #int
                doc[k] = int(v)
            else: #try a float
                try:
                    if math.isnan(float(v))==False:
                        doc[k] = float(v) 
                except:
                    pass            
    return doc

def upload(db, docs):
    db.bulk_save(docs)
    del docs
    return list()

def uploadFile(fname, dbname):
  #connect to the db
  theServer = Server()
  db = theServer.get_or_create_db(dbname)

  #loop on file for upload
  reader = DictReader(open(fname, 'rU'), dialect = 'excel')

  docs = list()
  checkpoint = 100
  i = 0
  for doc in reader:
    newdoc = parseDoc(doc) 
    docs.append(newdoc)

    if len(docs)%checkpoint==0:
      docs = upload(db,docs)
      i += 1
      print 'Number : %d' %i

  #don't forget the last batch        
  docs = upload(db,docs)

if __name__=='__main__':
  x = '/media/volume1/Crimes_-_2001_to_present.csv'
  filename = x
  dbname = 'test'
  uploadFile(filename, dbname)
我看到很多关于如何更改附加数据库的目录的帖子。如果我将/etc/couchdb/local.ini保持原样(安装后是原始的),那么脚本会将数据附加到默认目录/var/lib/couchdb/1.0.1/。当我修改local.ini以将数据库存储到另一个磁盘时:

数据库_dir=/media/volume1 查看索引目录=/media/volume1

在CouchDB服务重新启动后,我发现以下错误:

restkit.errors.RequestError:socket.error:[Errno 111]连接被拒绝

我已经检查了打开的套接字(couchdb默认使用5984),但它没有打开。但当我启动CouchDB服务时,我没有收到任何错误。
您知道如何修复它吗?

我认为错误可能是由于您更改了Local.ini中的目录位置,但当您尝试与现有数据库建立新连接时,它无法在那里找到它


因此,将数据库_name.coach文件移动到新位置,您可以将其放入local.ini中,然后尝试建立连接。我想这应该行。

我会检查你的新目录,确保couchdb拥有它的所有权:
ls-al[new dir]
sudo chown-R couchdb:couchdb[new_dir]