본문 바로가기
프로그래밍/ASP

ASP에서 MySQL사용하기

by 백룡화검 2008. 7. 31.

[ASP] ASP에서 MySQL사용하기

개발을 업으로 삼다보면 별에별 환경에 다 접하게 됩니다. 예전에 Delphi를 가지고 작업을 해 본적이 있는데... 사용해야 할 DBMS가 MySQL이였던 적이 있습니다. Delphi는 Borland Database Engine(BDE)이라는 DB에 통일적인 접근과 작업이
가능하게 해주는 훌륭한 엔진이 있는데, 그 당시 Dephi의 BDE에서는 MySQL이 지원이 안되었던걸로 기억납니다.(어쩌면 안되는게 아니라 하수라서 방법을 몰랐을 수도 있습니다..)

할수없이 MySQL사이트에 들어가서 MySQL Connector/ODBC를 이용해서 작업을 했었습니다.
지 금 간단하게 소개할 ASP에서 MySQL 사용하기는 MySQL Connector/ODBC를 이용하는 방법입니다. ( JSP에서 MySQL을 사용하기 위해서는 MySQL Connector/JDBC를 이용하면 됩니다. 나중에 JSP부분에서 간단하게 소개하겠습니다.)

MySQL Connector/ODBC 3.51을 다운로드하기 위해서는 아래 Url에 접속합니다.( 다운로드 주소는 바뀔수도 있습니다.)
http://dev.mysql.com/downloads/connector/odbc/3.51.html


우리는 여기서 windows용 MySQL Connector/ODBC 3.51을 다운 받습니다.
제 자리에는 예전에 다운 받았던 파일이 아주 이쁘게 저장되어 있습니다. 다운받은 파일명은 "mysql-connector-odbc-3.51.12-win32.zip"이고 setup버전입니다. 압축을 풀면 setup.exe파일이 생깁니다.

setup.exe파일을 실행시켜 MySQL Connector/ODBC를 설치합니다.


설치를 환영한다는 아주 익숙한 레퍼토리가 뜨면 그러려니 하고 Next 버튼을 클릭해 줍니다.


셋업타입은 Default를 선택한 후 Next 버튼을 클릭해주면 인스톨이 시작됩니다.



MySQL Connector/ODBC 인스톨이 완료되면 Finish 버튼을 클릭하고 빠져나옵니다.

이제 MySQL Connector/ODBC 3.51 설치가 완료되었습니다.
MySQL에 사용할 Database가 생성되어 있다면 ODBC 데이타 원본 관리자를 실행시킵니다.

※ windows2000과 windows2003은 시작 -> 프로그램 -> 관리도구 -> 데이타원본(ODBC)

※ windowsXP는 시작 -> 설정 -> 제어판 -> 관리도구 -> 데이타원본(ODBC)

아래는 ODBC 데이타 원본 관리자를 실행시키고 시스템 DSN을 텝(TAB)을 클릭한 화면입니다
.



여기서 추가버튼을 클릭하여 MySQL을 위한 새로운 시스템데이타 원본을 만듭니다.



새 데이타원본 만들기 팝업에 있는 리스트박스를 아래를 스크롤하면 MySQL ODBC 3.51 Driver가 위의 그림과 같이 설치되어 있습니다. MySQL ODBC 3.51 Driver를 선택하고 마침버튼을 클릭합니다.



마침버튼을 클릭하면 위의 화면과 같은 시스템 DSN 기본정보 입력화면이 뜹니다.
MySQL ODBC Driver를 이용해서 MySQL에 접근하기 위한 기본정보이기 때문에 위에도 말씀드렸다 시피 MySQL에 접근하기 위한 데이타베이스가 미리 생성되어져 있어야 합니다.

테스트를 위해서 MySQL에 다음화면과 같이 Database와 table을 만들고, database사용자를 등록 했다고 칩시다.




위 의 정보를 바탕으로 우리는 아래 그림과 같이 기본정보를 입력할 수 있습니다. 기본정보 입력 후 Test 버튼 클릭을 했을때 "success connection was made!"라는 메시지가 출력되면 성공한 것입니다. 테스트가 성공적이면 OK 버튼을 클릭합니다.







위의 그림은 OK 버튼 클릭 후 시스템 DSN에 ODBC 3.51 Driver가 출력된 화면입니다.

이제 우리는 ODBC를 이용해서 MySQL을 사용할 준비가 완료 되었습니다. 위와 같이 시스템 DSN에 MySQL Driver가 등록되었다면 ASP뿐만 아니라 ODBC를 지원하는 어떤 프로그램 언어에서든 접근가능합니다.

그럼 MySQL 시스템 DSN 기본정보 입력화면에 입력되는 값들이 무엇인지 짧게 알아보고 ASP 예제로 들어가 보겠습니다.

Data Source Name : 시스템 데이타 원본의 이름입니다. 이 이름으로 ODBC를 참조하게 됩니다. 아무렇게나 지어도 상관은 없지만 ODBC를 이용해서 접근할 데이타베이스와 연관성이 있게 지어주시는게 좋습니다.

Description : DSN에 대한 간단한 설명부분입니다. 귀찮으면 비워 놓으셔도 무방합니다.

Server: MySQL Server가 존재하는 컴퓨터의 IP입니다. 여기서는 local에서 작업해서 local로 입력했지만 MySQL Server가 물리적으로 다른 머신에 설치되어 있다면 그 IP를 등록해 주셔야 합니다.

※ MySQL은 Default로 local에서만 접근 가능합니다. 외부IP에서 접근 가능하게 해 주실려면 사용자를 등록할때
"사용자@localhost" 부분을 "사용자@해당아이피"로 바꿔서 등록해 주셔야 합니다.


User: 해당 Database에 사용권한이 있는 사용자 아이디입니다.

Password: 사용자의 비밀번호입니다.

DB:우리가 사용하고자 하는 해당 Database입니다.


이제 짧은 예제를 작성해 보기 위해서 위에 만들어 놨다고 친 testTable에 값을 입력한 후 ASP페이지 내에서 Table의 값을 출력해 보겠습니다.



위와 같이 테이블에 값을 Insert하고 아래와 같이 가장 간단한 ASP소스로 테스트해 보겠습니다.

<%

Set dbCon = Server.CreateObject("ADODB.Connection")
strConnect = "DSN=testODBC;uid=testUser;pwd=1234;"

dbCon.Open strConnect
SQL = "Select * from testTable"

Set Rs = Server.CreateObject("ADODB.Recordset")
Rs.Open SQL, dbCon


"Doo..Loop대신에 GetString 으로 처리했습니다.
tblValue = Rs.GetString(,,"</td><td>","</td></tr><tr><td>"," ")
%>

<TABLE border=1>
<TR><TD>

<% Response.Write(tblValue)%>
</TD></TR>
</TABLE>


테스트 화면입니다. 더자래,왕자래,다자래씨까지 테이블에 입력된 값들이 제대로 표시됩니다.



훌륭히 연결된 것입니다.
그럼 위와 같이 ODBC 설정을 꼭 해줘야 만 ASP에서 MySQL 연동이 가능한 걸까요?
우리는 ODBC설정을 안하고도 데이타베이스 이름만 알고 있다면 연결할 수 있는 방법을 알고 있습니다.
아래 박스는 그 방법을 우리에게 보여주고 있습니다.

Set dbCon =Server.CreateObject("Adodb.Connection")
dbCon.open("Driver={SQL Server};Server=서버이름 또는 IP;Database=데이타베이스명;uid=아이디;pwd=패스워드")

그럼 위의 방법대로 연결을 하기 위해서 ODBC 데이타 원본 관리자를 열고 시스템 DSN 텝(TAB)에서 MySQL ODBC 3.51 Driver를 다음과 같이 제거합니다.



"위의 화면과 같이 MySQL ODBC 3.51 Driver가 시스템 DSN 텝에서 제거 되었다면 소스를 다음과 같이 수정합니다.

<%

Set dbCon =Server.CreateObject("Adodb.Connection")
dbCon.Open "Driver={MySQL ODBC 3.51 driver}; Server=localhost; Database=testDB; Uid=testUser;Pwd=1234;"


SQL = "Select * from testTable"

Set Rs = Server.CreateObject("ADODB.Recordset")
Rs.Open SQL, dbCon


"Doo..Loop대신에 GetString 으로 처리했습니다.
tblValue = Rs.GetString(,,"</td><td>","</td></tr><tr><td>"," ")
%>

<TABLE border=1>
<TR><TD>

<% Response.Write(tblValue)%>
</TD></TR>
</TABLE>


어떻습니까? 이번에도 아래 화면과 같이 더자래, 왕자래, 다자래씨의 이름을 확인 하실 수 있을 것입니다.


 


작성자: 다자래(mfcchang@naver.com)
웹제작 토탈 커뮤니티 http://www.webmadang.net