데이터베이스 연결 문제 해결

마지막 업데이트 날짜 2021년 12월 20일

Dreamweaver에서 사용 권한 문제, Microsoft 오류 메시지 및 MySQL 오류 메시지를 해결합니다.

Dreamweaver의 현재 버전 이후로 사용자 인터페이스가 간소화되었습니다. 따라서 이 문서에 설명된 옵션 중에 Dreamweaver의 현재 버전에 없는 옵션이 있을 수 있습니다. 자세한 내용은 이 문서를 참조하십시오.

사용 권한 문제 해결

가장 일반적인 문제 중 하나는 폴더나 파일 권한이 부족한 것입니다. 데이터베이스가 Windows 2000 또는 Windows XP 컴퓨터에 있고 웹 브라우저나 Live view에서 동적 페이지를 보려고 할 때 오류 메시지가 나타나면 권한 문제일 수 있습니다.

데이터베이스에 액세스하려는 Windows 계정에 충분한 권한이 없습니다. 해당 계정은 익명 Windows 계정(기본적으로 IUSR_computername)이거나 페이지가 인증된 액세스를 위해 보안이 설정된 경우 특정 사용자 계정일 수 있습니다.

웹 서버가 데이터베이스 파일에 액세스할 수 있도록 IUSR_computername 계정에 올바른 권한을 부여하기 위해 권한을 변경해야 합니다. 또한 데이터베이스 파일이 포함된 폴더도 해당 데이터베이스에 쓸 수 있도록 특정 권한을 설정해야 합니다.

페이지가 익명으로 액세스되도록 설계된 경우 아래 절차에 설명된 대로 IUSR_computername 계정에 폴더와 데이터베이스 파일에 대한 모든 권한을 부여하십시오.

또한 UNC(\\Server\Share)를 사용하여 데이터베이스 경로를 참조하는 경우 공유 권한이 IUSR_computername 계정에 모든 액세스 권한을 부여하는지 확인하십시오. 이 단계는 공유가 로컬 웹 서버에 있는 경우에도 적용됩니다.

다른 위치에서 데이터베이스를 복사하는 경우 대상 폴더의 권한을 상속받지 않을 수 있으며 데이터베이스의 권한을 변경해야 할 수도 있습니다.

데이터베이스 파일 권한 확인 또는 변경 (Windows XP)

컴퓨터에서 관리자 권한이 있는지 확인해야 합니다.
Windows Explorer에서 데이터베이스 파일이나 데이터베이스가 포함된 폴더를 찾고 파일이나 폴더를 마우스 오른쪽 버튼으로 클릭한 다음 [속성]을 선택하십시오.
[보안] 탭을 선택합니다.

이 단계는 NTFS 파일 시스템인 경우에만 적용됩니다. FAT 파일 시스템인 경우에는 대화 상자에 [보안] 탭이 없습니다.

IUSR_computername 계정이 [그룹 또는 사용자 이름] 목록에 없으면 [추가] 버튼을 클릭하여 추가하십시오.
[사용자 또는 그룹 선택] 대화 상자에서 [고급]을 클릭합니다.

대화 상자 모양이 바뀌면서 더 많은 옵션이 표시됩니다.

[위치]를 클릭하고 컴퓨터 이름을 선택합니다.
[지금 찾기]를 클릭하여 컴퓨터와 연결된 계정 이름 목록을 표시하십시오.
IUSR_computername 계정을 선택하고 [확인]을 클릭한 다음 다시 [확인]을 클릭하여 대화 상자를 지우십시오.
IUSR 계정에 모든 권한을 할당하려면 [모든 권한]을 선택하고 [확인]을 클릭하십시오.

데이터베이스 파일 권한 확인 또는 변경 (Windows 2000)

컴퓨터에서 관리자 권한이 있는지 확인하십시오.
Windows Explorer에서 데이터베이스 파일이나 데이터베이스가 포함된 폴더를 찾고 파일이나 폴더를 마우스 오른쪽 버튼으로 클릭한 다음 [속성]을 선택하십시오.
[보안] 탭을 선택합니다.
메모

이 단계는 NTFS 파일 시스템인 경우에만 적용됩니다. FAT 파일 시스템을 사용하는 경우 대화 상자에 [보안] 탭이 없습니다.

파일 권한 대화 상자의 Windows 계정 중에서 IUSR_computername 계정이 나열되지 않으면 [추가] 버튼을 클릭하여 추가하십시오.
[사용자, 컴퓨터 또는 그룹 선택] 대화 상자에서 [Look In] 메뉴에서 컴퓨터 이름을 선택하여 컴퓨터와 연결된 계정 이름 목록을 표시하십시오.
IUSR_computername 계정을 선택하고 [추가]를 클릭하십시오.
IUSR 계정에 모든 권한을 할당하려면 [액세스 유형] 메뉴에서 [모든 권한]을 선택하고 [확인]을 클릭하십시오.

보안 강화를 위해 데이터베이스가 포함된 웹 폴더에서 읽기 권한을 비활성화하도록 권한을 설정할 수 있습니다.폴더 찾아보기는 허용되지 않지만 웹 페이지는 여전히 데이터베이스에 액세스할 수 있습니다.

IUSR 계정과 웹 서버 권한에 대한 자세한 내용은 Adobe Support Center의 다음 기술 자료를 참조하십시오:

Microsoft 오류 메시지 문제 해결

이러한 Microsoft 오류 메시지는 Access나 SQL Server와 같은 Microsoft 데이터베이스 시스템과 함께 Internet Information Server(IIS)를 사용하여 서버에서 동적 페이지를 요청할 때 발생할 수 있습니다.

Adobe는 Microsoft Windows, IIS와 같은 제3자 소프트웨어에 대한 기술 지원을 제공하지 않습니다.이 정보로 문제가 해결되지 않으면 Microsoft 기술 지원팀에 문의하거나 Microsoft 지원 웹 사이트 http://support.microsoft.com/을 방문하십시오.

80004005 오류에 대한 자세한 내용은 http://support.microsoft.com/default.aspx?scid=kb;ko-kr;Q306518에서 Microsoft 웹 사이트의 “INFO: Troubleshooting Guide for 80004005 Errors in Active Server Pages and Microsoft Data Access Components (Q306518)”를 참조하십시오.

[[Reference]80004005—데이터 소스 이름을 찾을 수 없고 기본 드라이버가 지정되지 않음]

이 오류는 웹 브라우저나 Live 보기에서 동적 페이지를 보려고 할 때 발생합니다.오류 메시지는 데이터베이스와 웹 서버에 따라 다를 수 있습니다.오류 메시지의 다른 형태는 다음과 같습니다:

  • 80004005—Driver's SQLSetConnectAttr failed

  • 80004005—General error unable to open registry key 'DriverId'

    다음은 가능한 원인과 해결 방법입니다.

  • 페이지가 DSN을 찾을 수 없습니다. 웹 서버와 로컬 컴퓨터 모두에서 DSN이 만들어졌는지 확인합니다.

  • DSN이 시스템 DSN이 아닌 사용자 DSN으로 설정되어 있을 수 있습니다. 사용자 DSN을 삭제하고 시스템 DSN을 만들어 이를 대체합니다.

사용자 DSN을 삭제하지 않으면 DSN 이름이 중복되어 새로운 ODBC 오류가 발생합니다.

Microsoft Access를 사용하는 경우, 데이터베이스 파일(.mdb)이 잠겨 있을 수 있습니다. 잠금은 다른 이름의 DSN이 데이터베이스에 액세스하고 있기 때문에 발생합니다. Windows 탐색기에서, 해당 데이터베이스 파일(.mdb)이 포함된 폴더에 있는 잠금 파일(.ldb)을 찾아 삭제합니다. 다른 DSN이 동일한 데이터베이스 파일을 가리키고 있을 경우 이 DSN도 삭제해야 추가 오류 발생을 막을 수 있습니다. 변경 후 컴퓨터를 다시 부팅하십시오.

[[Reference]80004005—'(unknown)'을 사용할 수 없음; 파일이 이미 사용 중]

이 오류는 Microsoft Access 데이터베이스를 사용하고 웹 브라우저나 Live 보기에서 동적 페이지를 보려고 할 때 발생합니다.이 오류 메시지의 다른 베리에이션은 "80004005—Microsoft Jet 데이터베이스 엔진이 파일 (unknown)을 열 수 없습니다"입니다.

가능한 원인은 권한 문제입니다.다음은 몇 가지 원인과 해결 방법입니다.

  • Internet Information Server에서 사용하는 계정(일반적으로 IUSR)이 파일 기반 데이터베이스나 파일이 포함된 폴더에 대한 올바른 Windows 권한을 가지고 있지 않을 수 있습니다.사용자 관리자에서 IIS 계정(IUSR)의 권한을 확인하십시오.

  • 임시 파일을 만들거나 삭제할 권한이 없을 수 있습니다.파일 및 폴더에 대한 사용 권한을 확인합니다. 임시 파일을 만들거나 삭제할 권한이 있는지 확인하십시오.임시 파일은 일반적으로 데이터베이스와 같은 폴더에 만들어지지만 /Winnt와 같은 다른 폴더에도 만들어질 수 있습니다.

  • Windows 2000에서는 Access 데이터베이스 DSN에 대한 시간 제한 값을 변경해야 할 수 있습니다.시간 제한 값을 변경하려면 [시작] > [설정] > [컨트롤 패널] > [관리 도구] > [데이터 소스(ODBC)]를 선택하십시오.[시스템] 탭을 클릭하고 올바른 DSN을 강조 표시한 후 [구성] 버튼을 클릭하십시오.[옵션] 버튼을 클릭하고 페이지 시간 초과 값을 5000으로 변경합니다.

    여전히 문제가 있으면 다음 Microsoft 기술 자료 문서를 참조하십시오:

  • PRB: 80004005 "'(unknown)'을 사용할 수 없음; 파일이 이미 사용 중" http://support.microsoft.com/default.aspx?scid=kb;en-us;Q174943에서 확인

  • PRB: http://support.microsoft.com/default.aspx?scid=kb;en-us;Q253604에서 Active Server Pages의 Microsoft Access 데이터베이스 연결 실패

  • PRB: Error “Cannot Open File Unknown” Using Access at http://support.microsoft.com/default.aspx?scid=kb;ko-kr;Q166029.

[[참조]80004005—로그온 실패()]

이 오류는 Microsoft SQL Server를 사용하고 웹 브라우저나 라이브 뷰에서 동적 페이지를 보려고 할 때 발생합니다.

이 오류는 SQL Server가 제출되는 로그온 계정이나 암호를 수락하거나 인식하지 않을 때(표준 보안을 사용하는 경우) 또는 Windows 계정이 SQL 계정에 매핑되지 않을 때(통합 보안을 사용하는 경우) SQL Server에서 생성됩니다.

다음과 같은 해결 방법을 사용할 수 있습니다.

  • 표준 보안을 사용하는 경우 계정 이름과 암호가 올바르지 않을 수 있습니다.연결 문자열에 정의되어야 하는 시스템 관리자 계정과 암호(UID="sa"이고 암호 없음)를 사용해 보십시오.(DSN은 사용자 이름과 암호를 저장하지 않습니다.)

  • 통합 보안을 사용하는 경우 페이지를 호출하는 Windows 계정을 확인하고 매핑된 SQL 계정을 찾으십시오(있는 경우).

  • SQL Server는 SQL 계정 이름에 밑줄을 허용하지 않습니다.누군가 수동으로 Windows IUSR_machinename 계정을 동일한 이름의 SQL 계정에 매핑하면 실패합니다.밑줄을 사용하는 계정을 밑줄을 사용하지 않는 SQL 계정 이름에 매핑하십시오.

[[참조]80004005—작업에서 업데이트 가능한 쿼리를 사용해야 함]

이 오류는 이벤트가 레코드셋을 업데이트하거나 레코드셋에 데이터를 삽입할 때 발생합니다.

다음은 가능한 원인과 해결책입니다:

  • 데이터베이스를 포함하는 폴더에 설정된 권한이 너무 제한적입니다.IUSR 권한을 읽기/쓰기로 설정해야 합니다.

  • 데이터베이스 파일 자체의 권한에 전체 읽기/쓰기 권한이 적용되지 않았습니다.

  • 데이터베이스가 Inetpub/wwwroot 디렉터리 외부에 위치할 수 있습니다.데이터를 보고 검색할 수는 있지만 데이터베이스가 wwwroot 디렉터리에 위치하지 않으면 업데이트할 수 없을 수 있습니다.

  • 레코드세트가 업데이트할 수 없는 쿼리에 기반하기 때문입니다. 조인은 데이터베이스 내에서 업데이트할 수 없는 쿼리의 좋은 예입니다.쿼리를 업데이트 가능하도록 재구성하십시오.

    이 오류에 대한 자세한 내용은 http://support.microsoft.com/default.aspx?scid=kb;en-us;Q174640에 있는 Microsoft 기술 자료의 "PRB: ASP 'Error The Query Is Not Updateable' When You Update Table Record"를 참조하십시오.

[[참조]80040e07—조건 식에서 데이터 유형 불일치]

이 오류는 서버가 Insert Record 또는 Update Record 서버 동작이 포함된 페이지를 처리하려고 하고, 서버 동작이 Microsoft Access 데이터베이스의 Date/Time 열의 값을 빈 문자열("")으로 설정하려고 할 때 발생합니다.

Microsoft Access는 강력한 데이터 유형을 가지고 있어 지정된 열 값에 엄격한 규칙 집합을 적용합니다.SQL 쿼리의 빈 문자열 값은 Access 날짜/시간 열에 저장할 수 없습니다. 현재 알려진 유일한 해결 방법은 Access의 날짜/시간 열에 빈 문자열("") 또는 데이터 유형에 지정된 값 범위에 해당하지 않는 다른 값을 삽입하거나 업데이트하지 않는 것입니다.

[[참조]80040e10—매개 변수 부족]

이 오류는 SQL 쿼리에서 지정한 열이 데이터베이스 테이블에 존재하지 않을 때 발생합니다. SQL 쿼리와 데이터베이스 테이블의 열 이름을 확인하세요. 이 오류의 원인은 종종 오탈자입니다.

[[참조]80040e10—COUNT 필드 잘못됨]

이 오류는 웹 브라우저에서 Insert Record 서버 동작이 포함된 페이지를 미리 볼 때 Microsoft Access 데이터베이스에 레코드를 삽입하려고 할 때 발생합니다.

필드 이름에 물음표(?)가 포함된 데이터베이스 필드에 레코드를 삽입하려고 시도하고 있을 수 있습니다. 물음표는 Microsoft Access를 포함한 일부 데이터베이스 엔진의 특수 문자이므로 데이터베이스 테이블 이름이나 필드 이름에 사용해서는 안 됩니다.

데이터베이스 시스템을 열고 물음표(?)를 삭제하세요.이 필드를 참조하는 페이지의 서버 동작을 업데이트하세요.

[[참조]80040e14—INSERT INTO 문의 구문 오류]

이 오류는 서버가 Insert Record 서버 동작이 포함된 페이지를 처리하려고 할 때 발생합니다.

이 오류는 일반적으로 데이터베이스의 필드, 개체 또는 변수 이름과 관련된 다음 문제 중 하나 이상으로 인해 발생합니다:

  • 이름에 예약 단어 사용. 대부분의 데이터베이스에는 일련의 예약 단어가 있습니다. 예를 들어 “date”는 예약 단어이므로 데이터베이스의 열 이름으로 사용할 수 없습니다.

  • 이름에 특수 문자 사용. 다음은 특수 문자의 예입니다.

    . / * : ! # & - ?

  • 이름에 공백 사용

    이 오류는 데이터베이스의 오브젝트에 삽입 마스크가 정의되어 있고 삽입된 데이터가 이 마스크에 맞지 않을 경우에도 발생할 수 있습니다.

    이 문제를 해결하려면 데이터베이스의 열 이름을 지정할 때 “date”, “name”, “select”, “where,” “level” 등의 예약 단어를 사용하지 마십시오. 또한 공백과 특수 문자를 제거하십시오.

    일반 데이터베이스 시스템의 예약 단어 목록을 보려면 다음 웹 페이지를 참조하십시오.

  • http://support.microsoft.com/default.aspx?scid=kb;ko-kr;Q209187의 Microsoft Access

  • http://dev.mysql.com/doc/mysql/en/reserved-words.html의 MySQL

[[참조]80040e21—삽입 또는 업데이트 시 ODBC 오류]

이 오류는 서버가 Update Record 또는 Insert Record 서버 동작이 포함된 페이지를 처리하려고 할 때 발생합니다. 데이터베이스가 서버 동작이 수행하려는 업데이트 또는 삽입 작업을 처리할 수 없습니다.

가능한 원인과 해결책은 다음과 같습니다:

  • 서버 동작이 데이터베이스 테이블의 자동 번호 필드를 업데이트하거나 자동 번호 필드에 레코드를 삽입하려고 합니다. 자동 번호 필드는 데이터베이스 시스템에 의해 자동으로 채워지므로 외부에서 값을 입력하려는 모든 시도는 실패합니다.

  • 서버 동작이 업데이트하거나 삽입하는 데이터가 데이터베이스 필드에 적합하지 않은 유형입니다. 예를 들어 부울 (예/아니오) 필드에 날짜를 삽입하거나, 숫자 필드에 문자열을 삽입하거나, 날짜/시간 필드에 잘못된 형식의 문자열을 삽입하는 경우입니다.

[[참조]800a0bcd—BOF 또는 EOF가 참임]

이 오류는 웹 브라우저나 Live View에서 동적 페이지를 볼 때 발생합니다.

빈 레코드셋의 데이터를 페이지에 표시하려고 할 때 문제가 발생합니다. 문제를 해결하려면 다음과 같이 페이지에 표시될 다이내믹 콘텐츠에 Show Region 서버 동작을 적용하십시오:

페이지에서 다이내믹 콘텐츠를 강조 표시하세요.

[서버 동작] 패널에서 더하기(+) 버튼을 클릭하고 [Show Region] > [Show Region If Recordset Is Not Empty]를 선택합니다.

다이내믹 콘텐츠를 제공하는 레코드셋을 선택하고 [확인]을 클릭합니다.

페이지의 각 다이내믹 콘텐츠 요소에 대해 1~3단계를 반복합니다.

MySQL 오류 메시지 문제 해결

MySQL 4.1에 대한 PHP 데이터베이스 연결을 테스트할 때 발생할 수 있는 일반적인 오류 메시지 중 하나는 "Client does not support authentication protocol requested."입니다. MySQL 클라이언트 업그레이드를 고려하십시오."

이전 버전의 MySQL로 되돌리거나 PHP 5를 설치하고 일부 동적 링크 라이브러리(DLL)를 복사해야 할 수도 있습니다. 자세한 지침은 PHP 개발 환경 설정을 참조하십시오.