MYSQL ?설정이 다른 여러 개의 데이터베이스 서비스 하기
Zb5 & Talent
ZB - utf8 Database 사용
무료 Talent 쇼핑몰 프로그램 euckr 사용
Talent 와 ZB를 한 서버에서 세팅하는 과정에서 Talent 쇼핑몰은 데이터베이스 접속 및 사용과 관련한 모듈이 인코딩 되어 있어 일반적으로 PHP프로그래밍에 사용되는 언어셋(set names euc-kr 이거 맞나 모르겠어요 ㅡㅡ;;) 지정을 할 수가 없는 상태이고 어쨌든 utf8의 디비도 사용해야 하겠고 하여 하나의 디비를 세팅을 통하여 두개의 디비처럼 사용하는 방법을 적용하여 봤습니다. 쉬운 방법이 있을텐데 더 돌아서 문제를 해결한 것인가 싶긴 하지만 유용한 듯 합니다.
초기
Mysql DB
- mysqld : utf8
- client : euckr
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으로의 접속은 두번째 mysql을 default로 사용 할 수 있게 설정 합니다.
<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 |