Contact

Mysql Replication (복제)

1. 서버 정보

IP : 172.20.102.111 (master), 172.20.102.112 (slave)
db : test_db
user : test
pw : test1

2. MASTER 설정

1) DB생성 / 계정생성 / 권한 부여

2) my.cnf
vi /etc/mysql/my.cnf
[mysqld]
log-bin=mysql-bin (바이너리 로그파일 생성경로, log-bin만 기입시 default)
server-id = 1

3) mysql 재시작

3. Master 정보 보기

mysql> show master status; 
 +------------------+----------+--------------+------------------+ 
 | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
 +------------------+----------+--------------+------------------+
 | mysql-bin.000010 |     1    |              |                  | 
 +------------------+----------+--------------+------------------+ 

4. Slave 설정

1) my.cnf
vi /etc/mysql/my.cnf
[mysqld]
server-id=2
replicate-do-db='test_db'

2) database dump
복제할 데이터베이스 master로부터 dump
mysqldump --login-path=test test_db > test.sql (master에서)
mysql --login-path=test < test.sql (slave에서)

3) master 연결
mysql> change master to
 master_host='172.20.102.111',
 master_user='test',
 master_password='test1',
 master_log_file='mysql-bin.000010',
 master_log_pos=1;

4) 재시작

5. 확인

mysql > show processlist \G; (mastser, slave)

mysql > show slave status;

6. UUID 에러
– Slave에서 show slave status; 명령어 입력시 아래와 같은 에러 출력

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.
  • slave에서 auto.cnf를 삭제해주면 된다
systemctl stop mysql
rm -rf /var/lib/mysql/auto.cnf
systemctl start mysql

Mysql login path 설정

1. Login Path 등록

$ mysql_config_editor set --login-path=설정이름 --host=주소 --user=아이디 --port=포트 --password

 Enter password: *****

2. Print Login Path

$ mysql_config_editor print --login-path=설정이름
 [myroot]
 user = root
 password = *
 host = localhost
 port = 3306
# 전부 출력
 mysql_config_editor print --all 

3. Login Path 삭제

 mysql_config_editor remove --login-path=설정이름 

4. 접속

 $ mysql --login-path=설정이름 

C# IOS 로그인 인증 구현

  • IOS 토큰은 JWT로 구성
  • 아래 jwt 홈페이지에서 IOS에서 발급받은 토큰을 넣으면 아래 그림처럼 나온다.
  • 해당 예제에서는 Microsoft.IdentityModel.Tokens, System.IdentityModel.Tokens.Jwt 패키지를 사용
  • 아래는 예제 코드
var parts = Resource1.token_ios2.Split('.');
var header = parts[0];
var payload = parts[1];

// 헤더 정보가 궁금하거나 TokenValidationParameters에 ValidAudience, ValidIssuer값을 모를경우 사용
var hh = JwtHeader.Base64UrlDeserialize(header);
var pp = JwtPayload.Base64UrlDeserialize(payload);



  • apple에 key발급
  • 발급받은 json에 kid랑 토큰에 kid랑 일치
 // 꼭 key를 발급받아야함. kid가 토큰 header에 kid와 일치
string url = "https://appleid.apple.com/auth/keys";
string responseText = string.Empty;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
request.Timeout = 30 * 1000;
using (HttpWebResponse resp = (HttpWebResponse)request.GetResponse()) {
     HttpStatusCode status = resp.StatusCode;
     Console.WriteLine(status);
 Stream respStream = resp.GetResponseStream(); using (StreamReader sr = new StreamReader(respStream)) {     responseText = sr.ReadToEnd(); }
 }  
  • 발급받은 key와 정보로 객체 생성
 // 발급받은 key를 사용
var jwks = new JsonWebKeySet(responseText);

// jwt.io 사이트에서 encoded시에 나오는 iss,aud
var validationParameters = new TokenValidationParameters {
     IssuerSigningKeys = jwks.Keys,
     ValidAudience = "aud",  // aud는 어플리케이션id 
     ValidIssuer = "iss", // iss는 고정 
     ValidateLifetime = true,
     ValidateAudience = true,
     ValidateIssuer = true,
 }; 
  • 토큰과 위에서 생성한 객체로 인증
  var tokenHandler = new JwtSecurityTokenHandler();
 try {
     var claimsPrincipal = tokenHandler.ValidateToken(Resource1.token_ios2, validationParameters, out SecurityToken securityToken);
     if (securityToken == null) {
         // 인증 실패
     }
 } catch (Exception ex) {
     // 인증 실패
     Console.WriteLine(ex);
 } 

사회초년생 신차구입방법

1. 서비스
여러 지점을 가서 영맨에게 견적을 받겠지만 차값은 다 똑같습니다. 서울이라고 비싸게 팔지도 않습니다.(단,전시차는 예외입니다.) 상담할때 그냥 서비스부터 얘기하세요. 썬팅은 어떤브랜드 어떤등급, 블박은 브랜드와 품번 정확히 말해주고 맞춰주기 어렵다고 하면 나오세요. 쿨하게 나오시면 됩니다. 그리고 썬팅등급 말안하고 50만원 상당 어쩌구 저쩌구 하는 영맨 거르세요. 정 아니면 현금캐시백 요구하세요. 물론 서비스는 불법입니다. 원래 해주는것도 아니고 안해줘도 그만입니다.  적당한 선에서 타협보시길 바랍니다. 그리고 너무 파격적인 서비스도 의심해봐야 합니다. 예전에 어머니 말X부 구매할때 파격서비스 제시한 영맨이 현금캐시백 주는거, 한달을 미루면서 먹튀하려고 했던적이 있습니다.

+ 동호회카페나 디매, 다X와자동차에 견전글 올리고 영맨구합니다 하는게 더 빠를겁니다.

2. 카드할부 및 전액일시불
영맨이 카드상담사를 소개해주고 대행해 주는것이지 꼭 영맨이 제시한 할부이율과 캐시백대로 진행할 필요가 없습니다. 계약하기전에 미리 이모나 삼촌이 카드사에 일해서 따로 진행한다고 하세요. 영맨이 제시한것보다 동호회나 다X와자동차에서 하는 할부이율이 더 쌉니다. 꼭 미리 계약전에 말하셔야해요. 계약후에 말하면 안들어줍니다. 서비스와 카드따로진행은 꼭 계약전에 말하세요. 계약 진행 후에는 소비자가 을이 됩니다.

3. 공동명의
사회초년생의 신차구입이라면 보험료를 생각 안할 수 없습니다. 부모님 가족보험으로 들어가는게 훨씬 이득이라 명의 진행은 공동명의로 하세요. 요즘은 부모님 밑으로 있어도 경력인정 됩니다. 3년차쯤돼서 단독명의로 돌리시면 될것같습니다. 이것도 계약전에 분명히 말하세요. 처음에 단독명의하고 나중에 공동명의하려면 필요한 서류도 많아지고 까다로워져요. 잘못하면 매매계약서를 공동명의로 새로 써야합니다. 지분율은 나중에 가질 사람을 99로 설정하세요. 저는 나중에 제 명의로 할거라서 저99 어머니1로 했습니다. 만약 나중에 부모님 명의로 할거라면 부모님99 본인1로 하세요. 그래야 나중에 취득세를 1%만 내기때문에 돈을 아낄 수 있어요.

4. 업체선정
영맨이 진행해주는거라면 긴장의 끈을 놓지말고 물어볼거 물어보고 때때로 확인하시길 바랍니다. 썬팅 보증서랑 블박 설명서 박스 등 잘 챙기시구요. 현금 페이백이라면 썬팅브랜드 공식대리점쪽으로 알아봐서 진행하거나 동호회카페 협력업체로 지정해서 하면 될겁니다.

5. 보험가입
보험X모아 라는 사이트에 가면 각 보험사 보험료 비교를 한눈에 볼 수 있습니다. 저는 어머니께서 현X가 제일 싸서 진행했어요. 제일 비싼곳은 삼X이었는데 20만원이상 차이 났습니다. 가격 잘 알아두시고 차 출고하고 차대번호로 가입하시면 됩니다.

6. 인수
차가 출고되면 영맨이 전화줄거구요. 미리 지정한 썬팅업체로 탁송을 받으실 겁니다. 보통 썬팅업체에서 신차검수를 무료로 해줍니다. 수시로 문제 없는지 피드백 받으세요. 그리고 인수하라고 하면됩니다. 직접 꼼꼼히 보시고 인수하는게 제일 좋습니다. 신차검수리스트는 유튭이나 초록창에 검색해보시면 나옵니다.

7. 등록
영맨이 알아서해주거나 직접 자동차사업소 가셔서 진행하시면됩니다. 영맨이 해줄시 공채영수증 등록영수증 싹싹 다 가지고 오라고 하세요. 공채금은 매일 증권처럼 이율이 달라진대요. 견적서에는 높게 측정하지만 실제로는 낮게 낼수도 있죠. 그러니 영수증 잘챙겨서 영맨이 떼먹지 않게 조심하시길 바랍니다. 직접하게되면, 대행비 3~4만원 저렴하게 할 수 있고 카드무이자할부도 할 수 있다네요.