MySQL 멀티(다중) 인스턴스 구동 - 인스턴스 2개 운영

Last Updated on 2월 15, 2021 by 태랑(정현호)

문서 업데이트 날짜 : 2020/09/06
Mysql 버전 : 5.7.29

여러가지 이유로 한개의 서버에서 2개 혹은 그 다수의 mysql db인스턴스의 구동이 필요한 경우 입니다.

5.7.29 버전으로 mysql s/w는 설치가 되어있으며 컴파일로 설치하였습니다.
(필요시 설치 과정은 아래글 참조)

 

## 필요 디렉토리 생성

mkdir -p /usr/local/mysql/data2

mkdir -p /usr/local/mysql/logs2

 

 

## 파라미터 변경

cp /etc/my.cnf /etc/my2.cnf

 

vi /etc/my2.cnf 

 

 

[mysql]

port=3306 => port=3307

/usr/local/mysql/data => /usr/local/mysql/data2

/usr/local/mysql/logs => /usr/local/mysql/logs2

pid-file=/usr/local/mysql/tmp/mysqld.pid => pid-file=/usr/local/mysql/tmp/mysqld2.pid

 

port = 3306  => port=3307

socket = /tmp/mysql.sock  => socket = /tmp/mysql2.sock 

 

 

## db 생성

cd /usr/local/mysql/bin

./mysqld --defaults-file=/etc/my2.cnf  --initialize --user=mysql 

 

 

## 초기 패스워드 확인 

로그 상에서 아래에 내용 확인 

 

2020-09-06T10:38:45.062211+09:00 0 [Warning] CA certificate ca.pem is self signed.

2020-09-06T10:38:45.209053+09:00 1 [Note] A temporary password is generated for root@localhost: 9VVkWLP<w4oa

 

 

## 초기 구동 및 패스워드 변경

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

정상적으로 구동되면 로그에 아래와 같은 내용이 확인 될 것 이다.

Version: '5.7.29-log'  socket: '/tmp/mysql2.sock'  port: 3307  Source distribution


## root 패스워드 변경
/usr/local/mysql/bin/mysql -u root -p -S /tmp/mysql2.sock

 Enter password: 위의 패스워드 입력 =>  9VVkWLP<w4oa

 

 

ALTER USER 'root'@'localhost' IDENTIFIED BY '변경할패스워드';

commit;

flush privileges;

exit


 

## 서비스 등록을 위해 정상종료

/usr/local/mysql/bin/mysqladmin -u root -p shutdown -S /tmp/mysql2.sock



## Mysql 서비스 등록 - Centos 6

 

cd /usr/local/mysql/support-files

cp mysql.server /etc/init.d/mysqld2

 

chmod 755 /etc/init.d/mysqld2

 

 

vi /etc/init.d/mysqld2

 

46,47 라인 수정

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data2

 

63 라인

mysqld_pid_file_path=/usr/local/mysql/tmp/mysqld2.pid

 

233 라인

extra_args="--defaults-file=/etc/my2.cnf"

 

 

266 라인

$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &

 

to   

 

$bindir/mysqld_safe --defaults-file=/etc/my2.cnf --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &

 

 

 

## runlevel 등록 및 가동

chkconfig --add mysqld2

chkconfig --level 35 mysqld2 on

chkconfig --list | grep mysqld

 

service mysqld2 start

답글 남기기