달력

02

« 2019/02 »

  •  
  •  
  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  •  
  •  
2017.05.19 16:47

MySQL Master - Replication 구성 Tech/MySQL2017.05.19 16:47

MySQL Master <-> Replication 구성


원본글 http://puham.tistory.com/71


mysql dual replication이란 일반적인 리플리케이션과 달리 서로가 마스터이자 슬레이브로

서로 양쪽의 db를 리플리케이션 함으로 어느쪽에서든 데이터가 생성되면 서로 복제하며

한쪽 DB가 죽어도 나머지 한쪽은 정상 작동되며 죽은 DB가 다시 살아날 경우 (서버가 죽은게 아닌)

작동이 멈춘동안 생긴 데이터가 시간순으로 복제된다.

# replication 설정

# db 1

#my.cnf 수정

vi /etc/my.cnf

[mysqld]

log-bin=mysql-bin
server-id   = 1   <-- 아이피 마지막 두자리로 적어두면 겹칠일이 거의 없음.
binlog_format = 'MIXED'


#mysql 재시작

/etc/init.d/mysqld restart



#리플리케이션에 이용할 db사용자 생성

mysql -u root -p

mysql> create user 'repli'@'서버2번 아이피 입력' identified by'비밀번호';



#mysql replication user 생성 및 master 정보 확인
mysql> grant replication slave on *.* to 'repli'@'서버2번 아이피 입력' identified by '비밀번호';
mysql> flush privileges; <-- 이건 안해도 상관없음.
mysql> show master status;

+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |     2516 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+


# server 2

# my.cnf 수정

vi /etc/my.cnf

[mysqld]

log-bin=mysql-bin
server-id   = 2      <-- 아이피 마지막 두자리로 적어두면 겹칠일이 거의 없음.
binlog_format = 'MIXED'



# mysql 재시작

/etc/init.d/mysqld restart


#리플리케이션에 이용할 db사용자 생성

mysql -u root -p

mysql> create user 'repli2'@'서버1번 아이피 입력' identified by'비밀번호';


# mysql replication 설정, user 생성 및 master 정보 확인

mysql> stop slave;

mysql> change master to master_host='서버1번 아이피 입력', master_user='repli', master_port=3306, master_password='암호입력', master_log_file='mysql-bin.000001(위에나온 서버1 파일명)', master_log_pos=2516(위에나온 서버1 포지션번호);

mysql> start slave;
mysql> grant replication slave on *.* to 'repli2'@'서버1번 아이피 입력' identified by '암호입력';
mysql> flush privileges;
mysql> show master status;

+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |     2365 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+


# server 1

# mysql replication 설정

mysql -u root -p

mysql> stop slave;

mysql> change master to master_host='서버2 아이피', master_user='repli2', master_port=3306, master_password='암호입력', master_log_file='mysql-bin.000001(위에나온 서버2 파일명)', master_log_pos=2365(위에나온 서버2 포지션번호);

mysql> start slave;



확인작업으로 한쪽에서 testdb 생성

다른쪽에 정상적으로 생겼는지 조회해본후

한쪽 mysql stop 후 나머지 한쪽에서 testdb2 생성

다시 mysql start후 testdb2 생기는지 확인




슬레이브 스타트할때

[ERROR] Slave I/O: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work. Error_code: 1593

이런 에러가 뜨면

/home/mysql_data/auto.cnf 파일명 변경. (설치된 디렉토리는 다를 수 있음)

또는, MySQL 버전이 낮은 경우 소스 컴파일로 수정해야 함. (귀찮아서 안해봄)

Posted by 멋지다마라송
2017.05.18 02:39

PHP - json 배열처리 Tech/개발관련2017.05.18 02:39

번역 API 를 사용해서 번역을 하면, 보통 결과가 json 으로 반환된다.

이를 PHP 에서 적절하게 배열로 받아 가공하는 방법.


예) アンシネ 이 단어를 번역하고자 한다.


// 번역 API 를 통해 받은 데이터가 $response.

echo $response;

// json 데이터 반환.

// {"message":{"@type":"response","@service":"labs.api","@version":"1.0","result":{"translatedText":"안 신혜"}}}



// 반환된 json 데이터를 배열로 저장하는 함수.

$json_data = json_decode($response,true);



echo "<br />";

print_r($json_data);

// 출력 결과

Array ( 

[message] => Array ( 

[@type] => response 

[@service] => naverservice.labs.api 

[@version] => 1.0.0 

[result] => Array ( [translatedText] => 안 신혜 ) 



echo "<br />";

echo $json_data[message][result][translatedText]; // 배열 이용하는 방법

// 출력 결과

// 안 신혜


Posted by 멋지다마라송

PureAPK - apk 다운로더 

https://apkpure.com/

https://m.apkpure.com/

검색 - durango - global beta (듀랑고는 아직 글로벌 베타 테스트기간이라서 서버가 느리거나 불안정합니다)

2018.01.10 - 듀랑고 : 야생의 땅 - Unreleased 서버로 접속, 게임 플레이에 전혀 문제 없습니다.

apk 를 구글 마켓 말고 다른곳에서 받는거니 애플 아이폰/아이패드는 안됩니다..



오, 캐릭터가 많네요..


취업준비생이 얼마나 유명하면 게임에까지.. 바다가 푸르기를. 흑

캐릭터 둘러보는중에 다운로드 받는 센스 ~


그래픽은 뭐 할말이 없음 ^_^//


으악.. 선택할게 왜이렇게 많아;;


전투할때 앱 테두리 전체가 빨간색으로 보여지는거, 긴장감 쭉쭉.. 아주 참신하고 좋습니다.


와우처럼 몹을 죽이면 고기를 얻을 수 있고요..


캠프로 귀환하는 장면인데, 뭔가 굉장히 고통스러워하고 있는듯 보이는게 좀 어색해요;;

듀랑고, 엄청 기대됩니다 ~





Posted by 멋지다마라송

해외망 빠르게 이용하는 방법

https://blog.lael.be/post/4634

'링크저장' 카테고리의 다른 글

해외망 언제나 빠르게 사용하는 방법  (0) 2017.05.17
Posted by 멋지다마라송
2017.05.16 13:27

핑 포트 열기 Ping Port Tech/Windows2017.05.16 13:27

윈도우즈 서버 방화벽에서 핑을 허용하려고 하면 icmpv4 를 열면 된다.


그런데, 버전이 낮은 윈도우즈는 꼭 포트 번호를 넣어야 한다.


핑을 허용하려면 이 포트번호에 TCP 445 를 넣으면 된다.


끝.

Posted by 멋지다마라송


티스토리 툴바