2013-09-27 1 views
0

SQL 데이터베이스 이름을 사용하여 SQL Server에 연결할 수 있지만 데이터베이스에 연결하지 않고 SQL Server에 연결해야한다는 요구 사항이 있습니다.데이터베이스 이름을 사용하지 않고 SQL alchemy를 사용하여 SQL Server에 연결

나와 함께 사용할 수있는 정보는 다음과 같습니다. 포트 번호, 인스턴스 이름, db 사용자/암호, IP 주소. 마스터하지만 난 DB 이름을 제거하고 인스턴스 이름을 지정 또는 전부를 떠날 경우 -

나의 현재 명령은 이제 내가 DB 이름을 부여했기 때문에 연결할 수있어이

engine_handle = create_engine('mssql+pyodbc://sa:[email protected]<IP address>/master', echo=False) 

입니다. 다음 오류가 발생합니다.

"엔진 = create_engine ('MSSQL + pyodbc : // SA : 패스 @ IP 주소', = 진정한 에코)"

return self.dbapi.connect(*cargs, **cparams) DBAPIError: (Error) ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)') None None 

내가 인스턴스 이름을 사용하여 연결할 수 있다면 그것은 괜찮습니다 DB 이름 대신.

어떤 도움을 주시면 감사하겠습니다.

답변

2

원래 제대로 작동 한 URL을 사용하십시오.

engine_handle = create_engine('mssql+pyodbc://sa:[email protected]<IP address>/master', echo=False) 

그런 다음 당신은 당신이해야 할 다른 작업이 모두 CREATE DATABASE 명령 또는를 발행 할 수 있습니다.

데이터베이스 이름을 생략하면 sqlalchemy은 지정한 IP 주소의 이름을 가진 DSN을 찾습니다. 물론 DSN이 존재하지 않으며 예외가 발생합니다. here과 같은 유효한 연결 URL을 사용해야합니다.

데이터베이스 연결을 원하지 않는다는 의견 - SQL Server에 연결할 때마다 연결에 데이터베이스가 연결되어 있어야합니다. 생성 된 로그인에는 기본 데이터베이스가 할당되어 있습니다 (지정되지 않은 경우 master 사용).

+0

SQL Server에 연결 한 후 새 데이터베이스를 만들고 싶다면 어떻게해야합니까? 또한 나는 어떤 DB에 연결하고 싶지는 않지만 DB 대신 DB 인스턴스에 연결하는 것이 좋습니다. 그러나 오라클의 경우 DB에 연결하기 위해 인스턴스 이름을 사용하기 때문에 MS에 대해서는 그렇게 할 수 없습니다. – Hemant

+0

[CREATE DATABASE] (http://technet.microsoft.com/en-us/library/ms176061.aspx) 구문을 사용하여 새 데이터베이스를 만듭니다. 연결에 지정된 데이터베이스는 중요하지 않습니다. – Bryan

+0

미안하지만, 나는 당신을 얻지 못했습니다. 나는 DB와 SQL Alchemy에 매우 익숙하다. Create_database 명령을 URL이나 다른 곳에 넣으시겠습니까? – Hemant