- This topic has 0개 답변, 1명 참여, and was last updated 14 years, 9 months 전에 by 태랑. This post has been viewed 1501 times
-
-
설치 환경 및 버전
OS
Fedora12
Apache2.2
httpd-2.2.13-4.fc12.i686
php 5.2.12
소스설치 5.2.12
mysql
5.0.90
(수정중입니다 )
mysql 5.x 사용하면서 unicorn보드를 사용하려고 하면서 unicorn보드가 UTF8을 미지원하면서
euc-kr로 운영할 mysql을 하나더 설치할일이 생겨서 설치하게 되었습니다
기존에 mysql은 RPM으로 설치되어있었고 소스설치로 하나더 설치 할것입니다
모든작업은 root로 할 것 입니다
먼저 /etc/my.cnf 파일을 옴겨 높습니다 저는 rpm mysql 이 설치되어있기에 /var/lib/mysql 로 옴겨놓겠습니다
# mv /etc/my.cnf /var/lib/mysql/
다운받고 압축풀기
# wget ftp://mirror.khlug.org/mysql/Downloads/MySQL-5.0/mysql-5.0.90.tar.gz
# tar zxvf mysql-5.0.90.tar.gz
디렉토리로 이동후
# ./configure --prefix=/usr/local/mysql2 --localstatedir=/usr/local/mysql2/data \
--with-charset=euckr --enable-assembler --without-debug --enable-thread-safe-client \
--with-mysqld-user="mysql2" --with-client-ldflags=-all-static \
--with-mysqld-ldflags=-all-static --with-readline \
--sysconfdir=/usr/local/mysql2
# make
# make install
mysql 데이터베이스 생성
# /usr/local/mysql2/bin/mysql_install_db
공유라이브러리 설정파일에 mysql라이브러리 경로를 추가
/etc/ld.so.conf 파일에 아래내용을 추가한후
/usr/local/mysql2/lib
# ldconfig <-- 실행
유저를 생성합니다
# useradd -M -d /usr/local/mysql2 -s /sbin/nologin mysql2
소유권을 지정합니다
# chown -R root:mysql2 /usr/local/mysql2/
# chown -R mysql2:mysql2 /usr/local/mysql2/data/
mysql에서 사용할 환경 설정파일을 복사 합니다 시스템에 따라 다르니 아래를 참조합니다
my-huge.cnf 1GB 이상 메모리
my-large.cnf 512MB ~ 1GB
my-medium.cnf 128MB ~ 256MB
my-small.cnf 64MB 이하
테스트 시스템은 메모리가 683MB임으로 my-large.cnf 를 이용합니다
my2.cnt을 복사 합니다
# cp /usr/local/mysql2/share/mysql/my-large.cnf /usr/local/mysql2/my.cnf
그리고 my.cnt 을 열어서 포트를 변경합니다
저는 3306에서 3307 로 변경하고 socket도 변경하겠습니다
[client]
#password = your_password
port = 3307
socket = /tmp/mysql2.sock
[mysqld]
port = 3307
socket = /tmp/mysql2.sock저장하고 나와서
mysql 데몬을 띄웁니다
# /usr/local/mysql2/bin/mysqld_safe &
ps -ef | grep mysql 로 확인해보면 아래와 같이 mysql2 계정으로 떠잇는걸 확인할수 있습니다
root 3945 1 0 05:01 pts/1 00:00:00 /bin/sh /usr/bin/mysqld_safe
--datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=
/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql
mysql 4118 3945 0 05:01 pts/1 00:00:00 /usr/libexec/mysqld
--basedir=/usr --datadir=/var/lib/mysql --user=mysql
--log-error=/var/lib/mysql/taerang.err --pid-file=/var/run/mysqld/mysqld.pid
--socket=/var/lib/mysql/mysql.sock --port=3306
mysql2 4175 4152 0 05:05 pts/0 00:00:00 /usr/local/mysql2/libexec/mysqld
--basedir=/usr/local/mysql2 --datadir=/usr/local/mysql2/data --user=mysql2
--pid-file=/usr/local/mysql2/data/taerang.pid --skip-external-locking
--port=3307 --socket=/tmp/mysql2.sock
*파란색부분에 mysql2계정으로 3307 포트로 활성화 되어있는걸 확인할수있습니다
root 비밀번호를 지정하겠습니다
** sql인젝션 공격감지로인해 필터링되어서 스크린샷으로 띄웁니다
원래 목적인 euc-kr용 mysql을 설치했으니 케리터셋을 확인해보면
mysql> show variables like "c%";
euc-kr이 제대로 설정되어있는걸 확인할수 있네요
기존에 phpmyadmin 을 사용하고 있다면 하나도 설치해서 포트번호를 달리해도 상관없고
기존의 phpmyadmin에 추가하여 사용할수 있습니다 아래는 추가하여 사용하는 방법입니다
중요한건 이렇게 사용하려면 auth_type을 cookie을 사용해야합니다
첫번재 에 맨윗줄에 $i++; 이 없으니 써주고 $cfg['Servers'][$i]['verbose'] = '이름지정'; 이부분을 추가합니다
$i++;
/* Authentication type */
$cfg['Servers'][$i]['verbose'] = 'mysql5-1';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
/* Select mysqli if your server has it */
$cfg['Servers'][$i]['extension'] = 'mysql';
두번째 새로설치한부분인데 포트번호 다르게 지정해주시고 verbose 이름달리지정해주세요
socket 도 달리해주셔야 합니다
$i++;
$cfg['Servers'][$i]['verbose'] = 'mysql5-2'; <-구분하는 이름
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '3307';
$cfg['Servers'][$i]['socket'] = '/tmp/mysql2.sock';
$cfg['Servers'][$i]['connect_type'] = 'socket';
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
저장하고 띄워보면 아래와 같이 서버를 선택할수 있습니다
만약 소스로 기존에 설치된 상태에서 또하나 설치하는거라면 /etc/my.cnf 파일을 꼭
기존 mysql 의 data 디렉토리로 옴겨 놓으시기 바랍니다
/etc에 my.cnf파일이 있으면 전역적으로 적용되기에 여러 mysql 운영하려면 꼭 옴겨주시기 바랍니다
오픈소스를 응원합니다 Blog https://hoing.io
Senior Database Administrator(MySQL, Oracle)사이트 이용 문의 사항은 댓글이나 admin@fedoralinux.or.kr 로 메일주세요
- 답변은 로그인 후 가능합니다.