멀티MYSQL 사용하는 방법이라 보시면 되겠습니다.

혹 필요하신 분 계실까 싶어 조심스레 올려 봅니다.

 

MYSQL ?설정이 다른 여러 개의 데이터베이스 서비스 하기

 

 

Zb5 & Talent

 

 

ZB - utf8 Database 사용

무료 Talent 쇼핑몰 프로그램 euckr 사용

 

Talent ZB를 한 서버에서 세팅하는 과정에서 Talent 쇼핑몰은 데이터베이스 접속 및 사용과 관련한 모듈이 인코딩 되어 있어 일반적으로 PHP프로그래밍에 사용되는 언어셋(set names euc-kr 이거 맞나 모르겠어요 ㅡㅡ;;) 지정을 할 수가 없는 상태이고 어쨌든 utf8의 디비도 사용해야 하겠고 하여 하나의 디비를 세팅을 통하여 두개의 디비처럼 사용하는 방법을 적용하여 봤습니다. 쉬운 방법이 있을텐데 더 돌아서 문제를 해결한 것인가 싶긴 하지만 유용한 듯 합니다.

 

 

초기

Mysql DB

-         mysqld : utf8

-         client : euckr

 

목표

Server1 - utf8언어셋을 사용하는 mysql

Server2 - euckr언어셋을 사용하는 mysql

 

 

 

 

euckr 을 사용하는 데이터 베이스 추가 생성하기

버전 참고

[root@skycap etc]# mysql --version

mysql  Ver 14.7 Distrib 4.1.21,

 

 

절차

먼저 새롭게 설정할 데이터베이스의 데이터 경로로 사용할 디렉토리를 생성합니다.

Mkdir /database/mysql/euckrData

 

1.       PID 생성

A.       Vi /database/mysql/euckrData/mysql3x.pid

B.       해당파일이 열리면 24753 을 기입합니다. (/etc/services 에서 사용되어지지 않는 숫자를 입력하셔도 무관합니다.)

2.       MYSQL DATABASE 복사

A.       새롭게 설정한 디비에서 기존 사용자를 그대로 사용하기 위해 MYSQL DATABASE를 복사해 줍니다

B.       Cp ?rf /usr/local/mysql/data/mysql /database/mysql/euckrData/

C.       디렉토리 소유자 변경

D.       Chown ?R mysql.mysql  /database/mysql/euckrData

E.         

3.       새롭게 적용할 설정 파일 만들기 (새로운 my.cnf 파일)

A.       Cp /etc/my.cnf /etc/my_useTalent.cnf

B.       /etc/my_useTalent.cnf 편집

 

 

 

[client]

#password       = your_password

port            = 3308

socket          = /tmp/mysql.sock2

default-character-set=euckr

 

 

[mysqld]

 

skip-locking

key_buffer = 256M

max_allowed_packet = 1M

table_cache = 256

sort_buffer_size = 1M

read_buffer_size = 1M

read_rnd_buffer_size = 4M

myisam_sort_buffer_size = 64M

thread_cache_size = 8

query_cache_size= 16M

thread_concurrency = 8

log-bin

server-id       = 1

init_connect="SET collation_connection = euckr_korean_ci"

init_connect ="set names euckr"

character-set-server=euckr

default-character-set=euckr

 

pid-file=/database/mysql/euckrData /mysql3x.pid

socket=/tmp/mysql.sock2

port=3308

datadir=/database/mysql/3.xData

 

[mysqldump]

quick

max_allowed_packet = 16M

default-character-set=euckr

 

[mysql]

no-auto-rehash

# Remove the next comment character if you are not familiar with SQL

#safe-updates

default_character_set=euckr

[isamchk]

key_buffer = 128M

sort_buffer_size = 128M

read_buffer = 2M

write_buffer = 2M

 

[myisamchk]

key_buffer = 128M

sort_buffer_size = 128M

read_buffer = 2M

write_buffer = 2M

 

[mysqlhotcopy]

interactive-timeout

 

 

 

C.       /etc/my_useTalent.cnf 파일에서 크게 변경된건 없으며 다른 설정파일들은 서버에 맞게 튜닝 해 주시면 되며 mysqld client 섹션에 port 부분과 sock 부분의 설정과 pid 및 데이터 디렉토리를 수정 하시면 됩니다.

 

 

이상 설정 부분은 완료 되었고 이제 서비스를 시작합니다.

 

시작

/usr/local/mysql/bin/safe_mysqld --defaults-file=/etc/my_useTalent.cnf혹은

/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my_useTalent.cnf

 

종료

/usr/local/mysql/bin/mysqladmin -S /tmp/mysql.sock2 shutdown

디비 쉘 접속

mysql -u user -p -S /tmp/mysql.sock2

지금까지는 모든 언어셋을 euckr만을 사용하는 새로운 Mysql Database를 설정해 보았고 아래는 새로만든 데이터베이스를 사용하게 Talent를 설치합니다.

 

1.       데이터베이스 생성

mysql -u user -p -S /tmp/mysql.sock2

mysql> create database TShop_1;

mysql>\q

mysqladmin ?u root ?p reload ?S /tmp/mysql.sock2

 

 

2.       Apache 환경설정

A.        아파치에서 Virtualhost설정으로 해당 Domain으로의 접속은 두번째 mysqldefault로 사용 할 수 있게 설정 합니다.

        <VirtualHost xxx.xxx.xxx.xxx>

          php_value mysql.default_socket "/tmp/mysql.sock2"

            ServerAdmin webmaster@dummy-host2.example.com

            DocumentRoot …..

            ServerName xxx.co.kr

           ServerAlias www.xxx.co.kr

        </VirtualHost>

          저장하고 아파치를 재시작 합니다.

3.       Talent 설치

         talent 설치 파일에서 141라인부분의

        mysql -h $a -u $b -p${d} $c < $PPWD/$T_SQL 이부분을

        mysql -h $a -u $b -p${d} ?S /tmp/mysql.sock2 $c < $PPWD/$T_SQL 로 변경하고 저장한 후 설치 하시면 됩니다.

 

디비 사용시 CHARACTER-Set과 관련하여 sql에 테이블 생성시 특정 언어셋을 지정하여 만들곤 하다가 아직까지는 euc-kr만 고집하는 옜날 프로그램들이 있는 경우가 있어서 디비 세팅을 변경하여 그런 서비스는 차라리 설정이 다른 또다른 디비를 사용해게끔 하고 관리가 쉽게끔 하고자 구분하게 되었으며 서비스 특징을 모아서 그루핑 하여 관리하는 방법도 나름대로 괜찮을 것 같아 한번 작업해 보았고 유용한 듯 합니다.

 

 

UTF8을 사용하는 데이터베이스 SOCK1

EUCKR을 사용하는 데이터베이스 SOCK2

쇼핑몰서비스만 사용하는 데이터베이스 SOCK3

홈페이지서비스만 사용하는 데이터베이스 SOCK4

'개발도 하냐?' 카테고리의 다른 글

위젯시장전망  (0) 2009.06.25
디지털 컬러펜  (0) 2009.06.23
리버스엔지니어링  (0) 2009.06.20
공개SW 디지털교과서 이송재판, 메타냅 승소  (0) 2009.06.07
전자정부 웹표준 강화 종합대책  (0) 2009.06.02

+ Recent posts