database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 24953 게시물 읽기
No. 24953
mssql mysql 변환, asp 게시판 소스 수정
작성자
정왕균(hanabi3)
작성일
2006-01-10 06:37ⓒ
2006-01-11 08:23ⓜ
조회수
9,351

MS-SQL 에서 MySQL로 변환하는데 필요한 절차를 적어 봅니다.
2개월 정도 시행착오가 있었네요. ㅡㅡ;


1. 준비사항
MySQL5 설치, 포트는 우선 3306으로 하고 나중에 변경요.
MyODBC3.5 설치
MYOLEDB3 설치 후 한글 패치
MsSQL2MySQL 다운 설치(http://www.kofler.cc/mysql/mssql2mysql.html)


2. 데이타 전송하기 전에

=> my.ini 파일을 아래와 같이 설정하고 서버 재시작
아래 mysqld 옵션을 설정하지 않으면 데이타 전송시 한글과 특수문자를 쓸때 에러 발생
[client]
port=3306

[mysql]
default-character-set=euckr

[mysqldump]
default-character-set=euckr

[mysqld]
init_connect="SET collation_connection = euckr_korean_ci"
init_connect="SET NAMES euckr"
default-character-set=euckr
character-set-server=euckr
collation-server=euckr_korean_ci

=> Ms-SQL에서 자동증가 상수를 사용하였다면 해당 컬럼에 인덱스 추가해야 My-SQL에서 인식함.


3. 데이타 전송

MsSQL2MySQL 실행하고 연결 설정한 후 데이타 전송(포트가 3306이 아니면 에러남)

root 계정이 아닌 일반 계정으로 설정하여야 전송이 잘 되는 것 같습니다.
방화벽은 없는지 접속자 위치는 맞는지 확인하세요. 안되면 오디비시도 설정하시구요.


4. MySQL에 사용자 추가하고 권한주고 웹에서 접속

Set DbCon=server.createobject("adodb.connection")
dbcon.open "provider=mysqlprov;location=localhost;data source=디비이름;intergrated security='';user id=아이디;password=비번;port=포트;"

위에 설정이 안되는 경우가 있음(나도 지금 안됨 ㅡ.ㅜ) 아래 소스를 사용함.

Set dbcon=server.createobject("adodb.connection")
dbcon.open "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=localhost; DATABASE=디비이름; user id=아이디; password=비번; OPTION=35;port=포트;"


5. ASP 파일에서 변경해 줘야할 DB 관련 함수와 파라미터

1) TOP는 LIMIT으로 교체.
예) SELECT TOP 1 FROM board WHERE uid = 1
-> SELECT * FROM board WHERE uid = 1 LIMIT 1

 

2) @@IDENTITY는 작동하지 않음. LAST_INSERT_ID()로 수정.
예) SELECT @@IDENTITY
-> SELECT LAST_INSERT_ID()

 

3) MSSQL에서는 GROUP BY에 SELECT 뒤에 나오는 컬럼을 다 적어주어야 함.

 

4) GETDATE()는 NOW()(날짜와 시간)나 curdate()(날짜만)로 바꾼다.
Ms-SQL에서 날짜 형식에 빈칸을 넣으면 1900-01-01이 들어가는데 MySQL에서는 에러난다.
"1900-01-01 00:00:00" 이나 "1900-01-01" 날짜형식 삽입

 

5) DATEDIFF()
mysql - DateDiff( date(컬럼명이나 날짜) ,'"& date &"') = 0
mssql - DATEDIFF(day, date, GETDATE()) = 0

 

6) string + string 은 CONCAT 을 하면 된다.
예) SELECT str('가'+'나') as title FROM board
-> SELECT CONCAT('가'.'나') AS title FROM board

 

7) ROUND([숫자], [자릿수]).

8) LIKE 문에서는 '['가 있는지 확인하여야 함.

9) UNION 을 쓸 때 MYSQL에서는 SELECT를 ()로 꼭 감싸주어야 한다.

 

10) 게시판 수정 작업
Result.PageCount 와 Result.RecordCount 가 제일 문제인데 이것을 계산하여 해당 변수에 넣어주면 됩니다. AbsolutePage 는 빼도 되는거 같구요. startpage는 제가 안써서 필요하신 분들이 만들어 써보세요.

 

if Request("page")="" then '넘겨받는 변수는 페이지 값만
page=1
startpage=1
else
page=cint(Request("page"))
startpage=int(page/setsize)

 

if startpage=(page/setsize) then
startpage=page-setsize + 1
else
startpage=int(page/setsize)*setsize + 1
end if
end if

 

stpage = int((page - 1) * pgsize) '각 페이지에 맞게 잘라올 시작값

 

sql = "Select count(*) From tbname '
Set RsCount = Dbcon.Execute (sql)

 

trcount = cint(RsCount(0)) 'Result.RecordCount

 

IF trcount mod pgsize = 0 THEN
pgcount = trcount / pgsize 'Result.PageCount
ELSE
pgcount = (trcount / 10) + 1
END IF

 

sql="SELECT * FROM tbname ORDER BY ref DESC limit " & stpage & "," & pgsize
Set result = Dbcon.Execute (sql)


select mref = Max(ref) from 테이블 => select Max(ref) as mref from 테이블

 

select count(*) from 테이블
여기서 반환값이 상수형이 아닌 문자형으로 나와서 Rs(0) > 0 이렇게 비교하면 에러나는 것 같음.
IF cint(Rs(0)) > 0 THEN 이렇게 쓰세요.

 


Ms-SQL을 5년가까이 써왔는데 지금 집에 허접한 작업 피시에서 검색하는데도 처리 속도가 서버보다 더 빠른 것 같네요. MySQL이 불안하고 기능이 제한되어 있었는데 5버젼에서 많은 기능이 추가되니 이제 궂이 M$-SQL 쓰지 마시고 MySQL 쓰시기 바랍니다.

이 글에 대한 댓글이 총 1건 있습니다.

webyog.com

도화(dohwa)님이 2006-02-27 13:18에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
24957Table_locks_waited 값은 어떻게 해석해야 할까요? [1]
박현우
2006-01-10
2191
24956혹시 select명령으로 이런거 가능할까요? [1]
정병호
2006-01-10
1545
24955게시판 통합검색에 대한 질문 [1]
안토니오정
2006-01-10
1201
24953mssql mysql 변환, asp 게시판 소스 수정 [1]
정왕균
2006-01-10
9351
24952my.cnf가 /etc 밑에 없을 시... [1]
명성태
2006-01-09
4472
24951테이블 두개를 랜덤하게 가져오기 [1]
호나우도
2006-01-09
1260
24950시작시 mysql데몬 문제 입니다. [1]
jin725
2006-01-09
1215
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다