그런데, 불편한 메시지가 나온다. Pseudo-terminal will not be allocated because stdin is not a terminal
항상 나오는 것은 아니고, 단일명령을 주면 나오지 않는다. command.sh 에 실행명령을 작성하고, ssh {host} < command.sh 형식으로 할때 메시지가 나온다.
그런경우 ssh -t -t (두번) 옵션을 주어 실행하면 된다.
근데, 실행명령이 다 보인다.
이때는 ssh -T 옵션을 준다.
그런데, 또 불편한 메시지가 보인다. TERM environment variable not set.
ssh 실행시 해당 TERM 환경변수가 설정되지 않아서 그렇다. 타겟서버의 .ssh/environment 파일에(보통 파일이 없다. 그래서 새로 만들고) BASH_ENV=.profile 을 추가해준다. (경우에 따라서 .profile 을 .bash_profile 로 변경)
진한 부분의 옵션이 중요하다. 저 옵션이 있어야, master 로그 포지션이 기록된다.
1 은 명령으로 dump , 2 는 기록은 되는데, 코멘트로 덤프됨( -- CHANGE ... 처럼)
둘중 어느것으로 해도 상관없음.
slave 에서 직접 CHANGE MASTER ... 명령을 내리느냐 restore 시 같이 하느냐 그 차이.
# slave 쪽 : 위치에 맞게 restore.
slave 에서 데이터를 업데이트한후(stop slave; 를 먼저 한 상태) 다음명령으로 위치를 잡아준다
아래 위치는 덤프파일을 앞 부분을 보면 나온다. ( head slave.dump.sql -n 30 정도면 나온다)
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000200', MASTER_LOG_POS=200500;