그누보드5가 나온지도 어느덧 수년이 흘렀다.


그러나 그보다 이전에 그누보드로 만들어진 사이트들은 그누보드4가 대부분이며


그중에는 utf-8도 있겠지만 euc-kr로 만들어진 사이트도 많이 있다.


이러한 사이트들이 사이트 리뉴얼을 하는 등의 이유로 그누보드5로 넘어와야 할 수 있는데 그동안 쌓인 게시판 글 등 DB문제로 골머리를 앓는 사람도 있을 것이다. 이번 포스팅에서는 그누보드4에서 그누보드5로 이전하는 방법에 대해 알아보겠다.


다행히 그누보드5에서는 그누보드4에서 쉽게 이전할 수 있도록 방법을 제공하고 있어서 크게 어려운 점은 없을 것이다.


이 글에서 사용하는 버전

그누보드4 : 4.37.38 (euc-kr)

그누보드5 : 5.2.9.8 (utf-8) // 그누보드5는 euc-kr을 지원하지 않으므로 무조건 'utf-8' 이다.


버전은 어느 것을 사용하던 자유이다.


이 글을 보고 실전에 바로 사용하는 것은 권하지 않으며, 연습용 사이트에서 충분히 연습해보고 사용하길 권장한다.


우선, 옮겨야할 사이트를 보겠다. 총 3개의 게시판으로 이루어져 있으며 게시글은 그림과 글로 작성되있다.





이제 하나씩 해보도록 하자.


먼저 그누보드4의 DB를 백업한다.


필자는 phpmyadmin에서 백업을 했다. 


혹시 phpmyadmin에 접근하는 방법을 모르겠다면, 호스팅한 사이트에서 찾아보도록 한다. ex) 닷홈일경우 : 마이닷홈 -> 상세보기 -> 제공내역


phpMyAdmin에 접속하면 아래와 같은 화면이 보일텐데 빨간색 네모를 클릭해준다.



여기서 g4_로 보이는 것들이 그누보드4의 데이터베이스들이다. 


 xe로 시작하는 것들은 XE(前, 제로보드)의 DB이다. 필자가 XE도 같이 사용해서 보이는 것이며 그누보드만 쓰는 이들에게는 없을 것이다.


아무튼 이 화면에서는 내보내기(export)를 눌러준다.





내보내기 방법으로는 '퀵, 커스텀' 2가지가 있는데 대부분의 경우 퀵을 사용해도 상관없으나 


필자와 같이 제외하고 싶은 DB 테이블이 있다면 커스텀을 사용해서 체크를 해제해줘야한다.


그누보드5는 utf-8을 쓰기 때문에 파일 문자셋은 utf-8로 설정한다. (아마 자동으로 설정되었을 것이다.)


이외의 것들은 특별한 경우가 아니면 건드리지 않아도 되며 실행버튼을 눌러준다.




'실행' 버튼을 누르면 sql 확장자의 파일이 다운받아진다.




이제 그누보드5를 설치한다.


(그누보드5의 설치순서는 크게 상관이 없으나 그누보드4의 DB를 옮기기 전에는 어떠한 DB관련 작업도 해서는 안된다.)


설치를 할때는 MySQL 정보를 정확히 입력해준다.




그누보드5 설치를 완료했다. 그러나 빈 껍데기만 있을 뿐 게시글이 존재하지 않는다.



이제 본격적으로 그누보드4에서 작성되었던 DB들을 옮기기 시작한다.


phpMyAdmin 에서 가져오기(import)를 눌러주고 파일 선택을 클릭하여 이전에 다운받은 DB 파일을 선택한 후 실행을 눌러준다.

 


만약 이런 오류가 발생한다면 당황하지 않고, g4_로 시작하는 테이블들을 지워준 후 다시 실행한다.




그러면 이렇게 2가지 버전의 DB가 동시에 존재하게 된다.



다음으로는 그누보드4의 config.php 파일을 그누보드5로 복사한다. 위치는 자유이며 필자는 g4conf 라는 디렉터리(폴더)를 만들어서 그 안에 넣었다.


넣기 전에 반드시 config.php 를 utf-8로 인코딩해주고 코드도 수정해준다.





이제 그누보드5 안에 포함되있는 DB 이전 프로그램을 사용할 차례이다.


접근 방법은 그누보드5에 접속한 주소 뒤에 /g4_import.php를 추가하여 접속한다.


 관리자 아이디로 로그인 되있어야한다.


ex) http://도메인/g5/g4_import.php


아래와 같은 화면이 보인다면 성공이다.


이제 config.php 파일 경로를 상대경로로 지정해주고 확인 버튼을 누른다.






아래와 같은 화면이 보여야한다.




그리고 그누보드5 로 가보니 글은 있는데 그림이 없다.




왜냐하면 DB만 옮겼고 이외의 것들이 오지 않았기 때문이다.


그누보드4 에서 /data/file 안에 것들을 모두 그누보드5 의 /data/file 안으로 복사한 후 다시 접속해보면


아래처럼 그림까지 모두 출력되는 것을 볼 수 있다. 


 게시판들의 table 명이 같아야하며 table명이 다르다면 file 안의 디렉터리 이름을 변경해주면 된다.




mysql를 이용해 만든 DB 데이터를 다른 서버나 컴퓨터로 옮기는 방법은 여러가지가 있다.


대표적인 예시로는 콘솔을 이용하는 방법과 workbench에서 하는 방법이 있으며,


이번에 다루는 방법은 workbench를 사용하는 방법이다.


workbench를 사용하면 콘솔 사용법을 모르더라도 쉽게 따라할 수 있다는 장점이 있다.


DB를 옮기는 방법은 아래와 같다.



MySQL DB 옮기기



먼저 MySQL Workbench를 실행 시키면 아래와 같은 화면이 나올 것이다.


지금부터 옮길 파일의 스키마는 test_db 인데 예시를 위해 간단하게 데이터를 입력시켜 두었다.



왼쪽에 보면 Data Exprot 라는 것이 보일텐데 이것을 클릭해주면 해당 페이지로 이동한다.


여기서 우리가 옮길 것은 test_db 안의 test_db_table이다. 


test_db 안에 다른 테이블이 있었다면 추가로 표시됬을텐데 현재는 1개의 테이블만 보이는 모습이다.


Export to Dump Project Folder를 이용하여 파일을 저장하고자 하는 폴더를 선택한다.


필자는 DB_BACKUP 디렉토리를 만들어 사용했다.



Start Export 버튼을 누르면 백업파일이 만들어 진다.



(백업 파일)



이제 백업파일을 사용할 차례인데 이때는 Data Import/Restore를 선택한다.


Import form Self-Contained File 를 선택하여 백업하고자 하는 sql 파일을 선택하고


어떤 스키마로 넣을 것인지 선택한다. 여기서는 test_db2 스키마를 New... 를 이용하여 새로 만들었다.


이때 구조만 가져올지 데이터를 가져올지 둘다 가져올지를 고를 수 있는데


둘다 선택하겠다.




Start Import 를 누르면 test_db2 스키마에 test_db_table이 생겼고 구조와 데이터 모두 복사된 것을 알 수 있다.




이것으로 Workbench를 이용한 MySQL DB 이전 및 백업 방법을 마치겠다.


앞서 관계형 dbms의 종류에 대해 포스팅한 적이 있다.


 관계형 DBMS의 대표적인 4가지 프로그램

http://wishml.tistory.com/33?category=713871 



이번에 다룰 프로그램은 오픈소스의 장점을 가진 MySQL 이다.



MySQL 다운로드 하기



먼저 아래 링크로 이동한다.


https://dev.mysql.com/downloads/windows/installer/




특별한 사항이 없으면 계속 NEXT 버튼을 눌러주면 된다.







아래 사진의 화면에서는 필요한 프로그램을 다운 받으면 되는데 굳이 할 필요가 없다면 넘어가도 좋다.





여기서부터 중요하다.


관리자 계정의 패스워드를 설정해야 하며


추가로 Add User를 선택하여


root계정 외에 사용자 아이디를 추가할 수 있다.


실제 애플리케이션에서 root 계정으로 접속하기보단 추가로 만든 사용자 아이디에 적절한 권한을 부여하여 접속할 것을 추천한다.


(귀찮으면 root 를 사용해도 된다 ㅎ)



마지막으로 설정한 비밀번호를 입력하면 실행될 것이다.




+


사실 처음에 설치를 할 때는 몇몇 오류가 발생했다. 


MySQL Server 의 설치를 실패하는 것이었는데


프로그램을 삭제도 해보고 레지스트리 정리도 해보았으나 결국 안되었고 이것저것 만지다보니 해결했다.


아래는 문제의 오류 사진이다.


이처럼 설치도 안되고 무시하고 넘어가니 설치 과정에서 계속 오류가 발생한다.


이 상태로 접속하면 연결(connect)이 되지 않고 스키마도 생성이 안된다.


설치가 안되는 이유를 찾아보니 윈도우의 bit 문제라는 말이 있었는데


이제부턴 필자가 해결한 방법을 알아보자.



MySQL server failed 오류 해결 방법



앞서 다운받은 installer 를 다시 실행시키면 아래와 같을 것이다.


추가로 프로그램들을 다운받을 수 있는 것인데 add를 선택한다.



그리고 설치하지 못한 MySQL Servers로 들어가서 자신에게 맞는 것을 선택하여 설치한다.


자신의 windows운영체제가 32bit는 X86, 64bit는 x64 이며 필자는 이미 다운 받아서 x64비트가 없는 모습이다.






여기서 다시 오류가 발생한다면 아래의 파일을 다운 받고 다시 해보도록 한다.




vcredist_x64.exe


(이미 다운 받아서 '복구/ 제거/ 닫기' 가 보인다.)


이것은 오랜 검색 끝에 어떤 사이트에서 발견한 것인데, 필자는 이것을 먼저 설치하고 위의 과정대로 했다.


이제 다시 설치해보면 이 글의 과정처럼 설치가 잘 될 것이다.



'관계형 DBMS (RDBMS, 관계형 데이터 베이스 시스템)' 의 종류에 대해 알아보자.


'mssql vs mysql vs oracle'


 Microsoft SQL server

( mssql )

 MySQL

 Oracle

초판

 1989

 1995

 1980

특허

 상업적

오픈 소스 

상업적 

 구현 언어

C++ 

C , C++ 

C , C++ 

서버 

운영체제 

 Linux , Windows

FreeBSD , Linux, OS X
Solaris , Windows

AIX , HP-UX , Linux
OS X , Solaris , Windows
z / OS

 지원되는 

프로그래밍

언어

 C++ , Delphi , Go
Java , JavaScript (Node.js)
PHP , Python , R
Ruby , Visual Basic

 Ada , C , C#
C++ , D , Delphi
Eiffel , Erlang , Haskell
Java , JavaScript (Node.js)
Objective-C , OCaml
Perl , PHP , Python
Ruby , Scheme , Tcl

 C , C# , C++
Clojure , Cobol , Delphi
Eiffel , Erlang , Fortran
Groovy , Haskell , Java
JavaScript , Lisp
Objective C , OCaml
Perl , PHP , Python
R , Ruby , Scala
Tcl , Visual Basic

 성능

 MySQL < MSSQL < Oracle

 장점

1. 기업을 겨냥한 폐쇄 소스

2. ACID를 완벽하게 준수하는 엔진 사용

3. 트랜잭션 및 절차에 대한 높은 수준의 제어

1. 다양한 엔진 및 인터페이스와 호환 가능

2. 간단한 설계

3. 오픈소스이다.

4. 가장 보편적인 데이터베이스 도구로서 온라인 지원이 쉬움

1. 폐쇄 소스

2. 테이블 및 행 잠금을 제공

3. 테이블 스페이스, 동의어 및 패키지와 같은 명령을 사용하여 광범위하고 유연한 스토리지 사용자 정의

4. 광범위한 백업 메커니즘

5. 테이블 및 데이터베이스를 대규모로 관리하도록 설계

6. 사용자가 많아서 신뢰성이 높다.

 단점

 중소규모
ex) 중소기업

 중소규모
ex) 쇼핑몰, 중소기업

 대규모
ex) 대기업

 사용해야

 경우

1. .NET 개발환경에서 작업하는 경우

2. 대기업 / 기업 환경에 서비스를 제공

3. 애플리케이션 개발보다는 워크로드를 처리

4. 데이터베이스를 세부적으로 제어

1. 소규모 운영

2. 읽기 전용 웹 앱 또는 웹 사이트

3. 높은 수준의 복제 기능

4. 간단한 쿼리만 사용하며 동시성이 낮음

1. 트랜잭션 제어 측면에서 유연성이 필요

2. 대규모 데이터베이스 사

3. 높은 수준의 확장성

4. 데이터베이스가 플랫폼에 독립적


Microsoft access


종류 

MS access 

장점 

1. DB관리가 쉽다.

2. 엑셀과 호환이 잘된다.

3. PC 한대로 구축 가능하다.

4. 다른 포맷으로 변환이 쉽다(다른이름으로 저장 기능)

단점 

1. 윈도우에서만 사용 가능하다.

2. DB파일 크기가 최대 2g로 제한된다.

3. 복잡한 query문을 소화하지 못한다.

4. 여러명이 동시에 접속할 수 없다.



* 트랜잭션 : 데이터를 다루는 작업의 단위이다.

* ACID(원자성, 일관성, 고립성, 지속성) : 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질을 가리키는 약어이다.

+ Recent posts

티스토리 툴바