그누보드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개
감사합니다.
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
이렇게 뜨는데 알수 있을까요?