그누보드4에서 그누보드5로 DB이전시 한글깨질때 방법 > 그누보드5 팁자료실

그누보드5 팁자료실

그누보드4에서 그누보드5로 DB이전시 한글깨질때 방법 정보

그누보드4에서 그누보드5로 DB이전시 한글깨질때 방법

본문

제가 엄청나게 전문가거나 그런게 아니기에 경험에 비추어 말씀드리니 틀린 부분은 정정 부탁드립니다.


*** 아래를 시행하시기 전 DB를 우선적으로 백업해놓으시기 바랍니다. **


1. 저의 경우 기존 그누보드4 설치 서버가 대부분 euckr에 아주 오래된 서버가 대부분이라 해당서버에 그누5를 설치할 수가 없었습니다. 그래서, 새로 웹서버를 구입 후 거기에 먼저 그누5를 설치했습니다.



2. 설치된 서버에 gnu4폴더를 만들고 해당폴더에 기존 그누의 config.php파일을 옮겼습니다. 이때

**** 주의할점 반드시 config.php 파일을 editplus등으로 열어 "euc-kr"이라 적힌 부분을 찾아 "utf-8"로 바꿔쓴 후 파일인코딩을 utf8로 변환 후 저장한 후 옮겨야 합니다.(앞에것만 해도 되는지는 테스트 안해봤습니다. 그냥 확실한게 좋아 파일인코딩까지 utf8로 변환해 저장했습니다.)



3. 기존그누4 DB백업본을 에디트플러스와 같은 에디터에 불러와 소스를 확인합니다.



그누4 DB(aaa.sql)를 열어보면 sql 처음부분은 아래와 같습니다.



+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



-- MySQL dump 8.22

-- Host: localhost Database: aaa
---------------------------------------------------------
-- Server version 3.23.54-log

--
-- Table structure for table 'g4_auth'
--

CREATE TABLE g4_auth (
mb_id varchar(255) NOT NULL default '',
au_menu varchar(20) NOT NULL default '',
au_auth set('r','w','d') NOT NULL default '',
PRIMARY KEY (mb_id,au_menu)
) TYPE=MyISAM;

--
-- Dumping data for table 'g4_auth'
--



--
-- Table structure for table 'g4_board'
--

CREATE TABLE g4_board (
bo_table varchar(20) NOT NULL default '',
gr_id varchar(255) NOT NULL default '',
bo_subject varchar(255) NOT NULL default '',
.

.

.
bo_1_subj varchar(255) NOT NULL default '',
bo_1 varchar(255) NOT NULL default '',

PRIMARY KEY (bo_table)
) TYPE=MyISAM;
​.

.

.



+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



그리고 새롭게 설치한 그누5 sql 처음부분은 아래와 같습니다.



+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

-- phpMyAdmin SQL Dump
--
-- http://www.phpmyadmin.net
--
-- 호스트: localhost
-- 처리한 시간: 15-05-08 17:24
-- 서버 버전: 5.1.73
-- PHP 버전: 5.3.3

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- 데이터베이스: `aaa`
--

-- --------------------------------------------------------

--
-- 테이블 구조 `g5_auth`
--

CREATE TABLE IF NOT EXISTS `g5_auth` (
`mb_id` varchar(20) NOT NULL DEFAULT '',
`au_menu` varchar(20) NOT NULL DEFAULT '',
`au_auth` set('r','w','d') NOT NULL DEFAULT '',
PRIMARY KEY (`mb_id`,`au_menu`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- 테이블의 덤프 데이터 `g5_auth`
--​





+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



위의 두개를 비교해보면 서로 다른부분 중 언어셋 정의 부분이 있습니다.





4. 전 먼저 그누4 DB에서



시작 부분



-- MySQL dump 8.22

-- Host: localhost Database: aaa
---------------------------------------------------------
-- Server version 3.23.54-log



즉 "CREATE TABLE g4_auth (" 의 위로는 다 지워버리고





-- phpMyAdmin SQL Dump
--
-- http://www.phpmyadmin.net
--
-- 호스트: localhost
-- 처리한 시간: 15-05-08 17:24
-- 서버 버전: 5.1.73
-- PHP 버전: 5.3.3

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- 데이터베이스: `aaa`
--

--



을 넣었습니다.



다음으로 테이블 생성부분의 제일 마지막 ") TYPE=MyISAM;"을 전체 바꾸기로 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;"로 변경했습니다.



5. 그리고 마지막으로 파일인코딩을 euc-kr에서 utf8로 변경해 저장했습니다.



6. 이 모두를 실행 후 phpMyAdmin에서 DB import로 불러왔습니다. 이때 생성된 DB를 확인 하셔서 한글 깨짐이 있는지 다시 확인 해보시는게 좋습니다.



7. 웹에서 g4_import.php를 실행했습니다.



8. 한글깨짐이 문제라면 영카트도 비슷할듯 합니다.


9. 참고로 그누5가 설치된 DB로 그누4 DB를 import해서 한글깨짐이 이상이 없는걸 확인 후 g4_import.php를 실행시켰는데 변환된 DB에서는 한글이 깨져서 보인다면 위 순번 "2"번의 주의사항을 하지 않았을겁니다.


... 이건 순전히 제가 개인적으로 여기저기 참고 후, 몇번의 반복을 통해 습득한거라 확실하다 말씀드릴 순 없습니다.

그렇기에 "이게 왜 이렇게 해야하나요?" 물으시면 전 답을 드릴 수 없습니다. 그저 신규설치한 서버도 utf-8이고 그누5도 utf-8이라 기존의 그누4 DB나 config.php에서 euc-kr을 전부 utf-8로 바꾸고 해당 파일들의 인코딩도 전부 utf-8로 바꾸면 되지 않을까 하는 생각에 막연하게 이것저것 해보다 보니....
적어도 저는 이 방법으로 DB이전시 한글깨짐을 해결하였기에 글을 남겨 봅니다. 그래서 이 중 어떤게 영향을 미쳐 한글이 안깨졌는지, 멀 빼도되는지, 원리가 뭔지는 모릅니다. 양해바랍니다^^;;;


혹 누군가 저처럼 힘들어하시는 분이 있을듯 싶고, 그 중 단 한분이라도 이 방법이 먹히지 않을까 싶어 남겨봅니다.

잘못남긴 글이거나 잘못된 정보라 여겨지면 관리자 삭제 부탁드립니다. ^^;;;;




**참고게시물 URL(아래 게시물 보고 따라한걸 한곳에 정리한거라 해당 게시물 정보 남깁니다.)**

http://sir.co.kr/bbs/board.php?bo_table=g5_tip&wr_id=1593&sfl=wr_subject%7C%7Cwr_content&stx=%EA%B7%B8%EB%88%84%EB%B3%B4%EB%93%9C5%EB%A1%9C+DB%EC%9D%B4%EC%A0%84

http://sir.co.kr/qa/?wr_id=13905&sfl=mb_id%2C2&page=2&lstx=chicpro#answer_13931

추천
0

댓글 4개

저 말씀하신대로 수정을 해서 phpmyadmin에서 가져오기를 하는데 오류

SQL 질의:

--
-- 데이터베이스: `scienceteam`
 CREATE TABLE g4_auth(

mb_id varchar( 255 ) NOT NULL default '',
au_menu varchar( 20 ) NOT NULL default '',
au_auth set( 'r', 'w', 'd' ) NOT NULL default '',
 PRIMARY KEY ( mb_id, au_menu )
) ENGINE = MYISAM DEFAULT CHARSET = utf8;



MySQL 메시지: 문서
 #1046 - No database selected

이렇게 뜨는데 알수 있을까요?
위에님 오류는 데이터베이스명을 선택하지 않고 가져와서 그럽니다. 주로 데이터베이스 홈화면에서 가져오기 하면 저렇게 됩니다. phpMyAdmin 화면 좌측 상단에 데이터베이스명을 선택하고 가져오기 하세요
전체 2,426 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT