2016년 6월 3일 금요일

MySQL 덤프 / 임포트

 MySQL 덤프 / 임포트
1. dump
1.1 전체 dump
$>mysqldump -u [사용자아이디] -p 데이타베이스명 > 저장될 파일명.sql
  예) mysqldump -uroot -p data > data.sql

1.2 테이블만 dump
$>mysqldump -u [사용자아이디] -p 데이타베이스명 테이블명  > 저장될 파일명.sql
 예) mysqldump -u root -p data member > data_User.sql


2. 복구하기 (Import)
$> mysql -u[사용자아이디] -p 데이타베이스명 < 덤프파일명.sql
 예) mysql -u root -p data < data.sql
 예) mysql -u root -p data User_info < data_User.sql

3. 특정db의 특정 table에서 원하는 값만 덤프 받기
User라는 DB에 a,b,c라는 테이블이 있다. 여기서 b라는 테이블에서 no가 4번이상이고 7번 이하인 값만 덤프 받기
사용되는 옵션 -w
 예) mysqldump -u root -p User b-w'no =>4 and no=< 7' > edu_a_cond.sql

4. Database 스키마만 백업 받기
data라는 DB의 모든 테이블 스키마를 백업 받기
 예) mysqldump -u root -p -d data > data_db.sql
data라는 DB의 a라는 테이블 스키마를 백업 받기
 예) mysqldump -u root -p data a > data_a_table.sql

MY-SQL InnoDB 데이터 복구하기


MY-SQL InnoDB 데이터 복구하기

mysql의 스토리지 엔진 중(MyISAM, InnoDB) InnoDB에 관련 된 데이터 복구 방법에 대한 설명이다.
본래 InnoDB는 Mysql이 손상되어도 .frm 파일과 ibdata1파일만 존재하여도 복구가 가능하다.(이 방법은 아주 간단하므로 설명 제외)

이번에 설명할 내용은 ibdata1 인 데이터 파일이 손실될 경우에 복구하는 방법에 대해 설명이다.
Mysql은 정상 시작시 파일의 유무 및 다른 파일등을 검사한다.
하지만 파일이 손상되었을 경우 시작하자마자 서비스를 자체적으로 중단한다.
이에 InnoDB는 파일의 검사 등을 하지 않고 강제로 서비스를 시작하여 복구하는 모드가 따로 존재한다.
윈도우 기준으로 Mysql 설치 폴더/my.ini 이하 my.ini 파일에 innodb_force_recovery라는 명령어를 추가 시켜 주고 서비스를 재시작 하면 강제 복구 모드로 설정된다.
예) innodb_force_recovery = 1
숫자는 1에서 6까지 사용 가능하며, 1이 가장 안전하고 좋은 복구 모드이고, 1에서 복구가 안된다면 1~6까지 순차적으로 값을 바꿔가야 한다.
자세한 내용은 http://www.mysqlkorea.co.kr/sub.html?mcode=manual&scode=01&m_no=21875&cat1=14&cat2=422&cat3=442&lang=k 를 참고 하길 바란다.

위와 같이 프로그램을 시작하면 서비스가 정상적으로 시작하게 되며 그후에 dump로 파일을 백업 시킬 수 있다.
덤프 명령어는 Mysql설치폴더/bin에서 mysqldump -u계정명 -p 데이터베이스명 > 백업할파일.sql 로 하면 백업이 되고 
반대로 mysqldump -a -u계정명 -p 데이터베이스명 < 백업할파일.sql 이와 같이 하면 복원이 된다.

만약 1이 아닌 복구 모드로 실행시 파일이 전체적으로 백업되지 않았을 경우 복구 모드에 우선순위를 높여 select 명령어로 검사후 csv파일로 저장
저장 후 벌크 인서트로 파일 다시 불러옴 
벌크는 http://kr.blog.yahoo.com/freud19390723/79 를 참고

복원이 완료 된 후에는 innodb_force_recovery = 1를 삭제후 프로그램 재시작을 한다.

간단히 설명하자면 파일이 손상된 경우
1. 서비스 시작 중지
2. my.ini파일에 innodb_force_recovery = 1~6 값 설정 후 저장
3. 서비스 시작
4. 서비스 시작시 정상 동작이면 6. 아니면 5.
5. 정상 동작이 아닐경우 다른 복구 모드를 선택하여 서비스 시작
6. 정상 동작일 경우 mysqldump로 파일 백업
7. 높은 우선순위로 변경하여 파일로 저장후 벌크 인서트로 다시 넣음
8. 복구 모드 삭제 후 서비스 재시작

출처 http://discafe.tistory.com/entry/MYSQL-InnoDB-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B3%B5%EA%B5%AC-%EB%B0%A9%EB%B2%95

2016년 5월 25일 수요일

vscode ftp 설정하기

vscode ftp 설정하기

https://marketplace.visualstudio.com/items?itemName=lukasz-wronski.ftp-sync

2016년 5월 18일 수요일

텔레그램 비공개 채널 Chat id 받아오기, 메시지 보내기 how to get private channel of chat id

  1. 우선 공개채널로 설정하면서 채널주소를 생성합니다. @channelName
  2. 텔레그램 봇 API를 이용해서 공개채널에 메시지를 보냅니다~
  3. 응답결과 정보에서 보면 id라는 필드의 값이 chat id 입니다.
    { "ok" : true, "result" : { "chat" : { "id" : -1001005582487, "title" : "Test Private Channel", "type" : "channel" }, "date" : 1448245538, "message_id" : 7, "text" : "123ds" } }
  4. 이제 chat id "-1001005582487"로 메시지 발송이 가능합니다~

2016년 5월 17일 화요일

Mysql 관리자 비밀번호 바꾸기 패스워드 분실 root 비번 재설정

Mysql  관리자 비밀번호 바꾸기 패스워드 분실 root 비번 재설정

1) 실행되고 있는 MySQL 데몬을 종료
    CTRL+SHIFT+ESC 를 누르거나 CTRL+ALT+DEL 을 눌러서 '작업관리자' 에 들어간뒤
    mysqld.exe  혹은 mysqld-nt.exe 를 찾아서 종료 시켜 줍니다.

2) 커맨드 창에서 mysqld.exe 를 아래와 같이 수동 실행

    윈도우+R 을 누른뒤 cmd 입력하면 커맨드 창으로 들어갑니다.
    설치하신 MySql 폴더로 이동하신뒤  아래 명령어 실행

     mysqld.exe --skip-grant



3) 또 다근 커맨드 창에서 mysql.exe 실행

     커맨드 창에 들어가서, 위와 같이 MySql 폴더로 이동한뒤 아래 실행

     mysql.exe


4) mysql 에서 아래 명령어 차례대로 실행

mysql> use mysql;
Database changed
mysql> UPDATE user SET password=PASSWORD('변경할패스워드') where user='root'; Query OK, 0 rows affected (0.14 sec) Rows matched: 1 Changed: 0 Warnings: 0
mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.11 sec)
mysql> quit

5) MySql 데몬을 다시 정상적으로 실행

   조금전에 열은 커맨드 창들을 모두 닫고,
   정상적으로 mysqld.exe (데몬)이 실행되면  위에서 입력한 패스워드로 로그인이 됩니다.

MySQL 환경변수 확인

MySQL 환경변수 확인
SHOW VARIABLES;

윈도우 마이시퀄 서비스 등록 서비스 삭제 하기 Windows mysql service registger and unregister

윈도우 마이시퀄 서비스 등록  서비스 삭제 하기


* Mysql 서비스 등록 명령어
1. cmd 창에서 mysql 설치 디렉토리의 bin 디렉토리로 이동
2. mysqld --install (서비스명-옵션)




* Mysql 서비스 삭제 명령어
1. cmd 창에서
2. sc delete mysql(또는 서비스명)