APM 구축하기 2탄 입니다.
1탄이 궁금하신 분들은
[APM] 2Tier 기반 APM(Apache, PHP, MySQL) 구축 1탄 여기를 클릭해주세요!
php 설치
sudo apt install php php-mysql
보안그룹 Open
Test PHP 설정
// PHP 저장 파일 폴더로 이동
cd /var/www/html
// test.php 파일 작성
sudo vi test.php
// test.php
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
date_default_timezone_set('Asia/Seoul');
$conn = mysqli_connect( "공인 IP", "chan", "7975", "hi", "3306" );
#DB IP Username PW DB PORT
if( empty( $conn ) == true ) {
echo ( "#############" );
echo ( "</br> default DBMS 접속 호스트 정보가 정확하지 않습니다. </br>\n\n" );
exit ( "#################" );
} else {
echo ( "#######" );
echo ( "</br> default DBMS 접속에 성공하였습니다. </br>\n\n" );
echo ( "-----------------------------------------------------------------------------" );
echo ( "<pre>" );
print_r ( $conn );
echo ( "</pre>" );
exit ( "##########################" );
}
mysqli_close( $conn );
?>
❗DBMS 접속이 안될 때
sudo service mysql restart
signup_action.php 작성 및 DB 적재 확인
// 폴더로 이동
cd /var/www/html
// signup_action 열기
sudo vi signup_action.php
// signup_action.php
<?php
$name=$_POST['name'];
$email=$_POST['email'];
$num=$_POST['num'];
$con = mysqli_connect("공인IP","chan2","7975","hi") or die ("Can't access DB");
$query = "insert into exam (name,email,num) values('".$name."','".$email."','".$num."')";
$resut=mysqli_query($con,$query);
if(!$result)
{?>
<script> alert('회원가입이 완료되었습니다.'); location.href=".."; </script>
<?php
} else {?>
<script> alert('회원가입에 실패했습니다.\n다시 시도해 주세요.'); location.href=".."; </script>
<?php } ?>
결과확인
LB 생성 및 보안 그룹 연결
DB Replication (양방향)
mysqld.cnf 수정 + 보안그룹 OPEN
// **DB1 Instance**
// 폴더이동
cd /etc/mysql/mysql.conf.d
// mysqld.cnf 수정
sudo vi mysqld.cnf
# 서버 ID
server-id = 1
# Log 저장 위치
log_bin = /var/log/mysql/mysql-bin.log
# Replication 할 DB
binlog_do_db = hi
//mysql 재시작
sudo service mysql restart
결과확인
// **DB2 Instance**
// 폴더이동
cd /etc/mysql/mysql.conf.d
// mysqld.cnf 수정
sudo vi mysqld.cnf
# 서버 ID
server-id = 2
# Log 저장 위치
log_bin = /var/log/mysql/mysql-bin.log
relay-log = /var/log/mysql/mysql-relay-bin.log
# Replication 할 DB
binlog_do_db = hi
//mysql 재시작
sudo service mysql restart
결과확인
MASTER, SLAVE 정보 확인 및 설정
MySQL 접속 (DB 1)
SHOW MASTER STATUS;
MASTER - SLAVE 양방향 설정 DB1, DB2 둘 다
// DB2에 적용
CHANGE MASTER TO
MASTER_HOST='DB 사설 IP 1',
MASTER_PORT=3306,
MASTER_USER='chan',
MASTER_PASSWORD='7975',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS= 1525;
LOG_POS, LOG_FILE 잘 확인
IP는 사설 IP로 적용
// DB1에 적용
CHANGE MASTER TO
MASTER_HOST='DB 사설 IP 2',
MASTER_PORT=3306,
MASTER_USER='chan2',
MASTER_PASSWORD='7975',
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS= 444;
Slave 상태 확인
SHOW SLAVE STATUS\G;