본문 바로가기

데이터베이스/MySql & MariaDB

[마리아] db 각종 명령어 모음

기본적으로 mysql 명령이랑 완전 같다 보면 됨.


des 테이블명; - 해당 테이블의 컬럼 리스트( 타입 null 등 내용 )

show create table 테이블명; - 해당 테이블의 생성 스크립트를 확인 할 수 있다.

show index from 테이블명; - 해당 테이블의 인덱스 정보를 확인 할 수 있다.


mysqldump - 논리적인 데이터베이스의 백업, 및 복원 기타 자료를 덤프 시킬때 사용 한다.


mysqldump --help; - 명령에 대한 각종 옵션에 대한 설명을 확인 할 수 있다.


기본구조 : mysqldump [optionos] 디비명 or --all-databases or --databases dbname1 dbname2....  > 파일이름 


  • 옵션 
    • -u : 로그인 사용자 id를 입력한다. 예 -uroot
    • -p : 로그인 사용자 의 비밀번호를 입력한다. 예 -pPassword
    • --databases : 여러 데이터베이스를 선택적으로 덤프 할때 사용한다. 예 --databases dbname1 dbname2
    • --all-databases , -A : 모든 데이터베이스에 있는 모든 테이블을 덤프 한다.
    • --add-drop-database : drop database 명령문을 각각의 create database 명령문 전에 추가한다.
    • --add-drop-table : drop table 명령문을 각각의 create table 명령문 전에 추가한다.
    • --add-locks : Surround each table dump with LOCK tables 와 UNLOCK tables 명령문을 사용해 각각의 테이블  덤프를 둘러싼다.(surround). 이렇게 할 경우 덤프 파일을 다시 읽어올때 보다 빠르게 insert가 실행 된다.
    • --allow-keywords : 키워드 이름을 사용해서 컬럼을 생성하는것을 허용한다.
    • --character-sets-dir=path : 문자셋이 설치되어 있는 디렉토리.
    • --comments, -i : 프로그램 버전, 서버버전, 그리고 호스트와 같은 추가적인 정보를 덤프 파일에 기록한다. 이 옵션은 디폴트로 활성화되어있음.
      • --skip-comments :  를 사용하면 디폴트 활성화를 없앨 수 있다.
    • --compact : 간략한 결과를 만들게 한다. 이 옵션은코맨트를 없애주며, 해당 명령을 사용하면
      • --skip-add-drop-table, --no-set-names, --skip-disable-keys, --skip-add-locks 옵션이 활성화 된다.
    • --routines , -R : 스토어루틴(함수 및 저장 프로시저)를 함께 덤프 한다. 이 옵션은 mysql 5.0.13버전부터 추가 되었다.
      해당 옵션을 사용할 경우 타임스탬프가 다시 생성 되기 때문에 이전의 타임 스탬프를 갖기를 원한다면 해당 옵션을 사용하지 않는 것을 권장한다.
      재 생성시 원래의 타임스탬프를 갖도록 하기 위해서는 데이터베이스에 적절한 권한을 가지고 있는 계정을 사용해서 mysql.proc 테이블의 내용물을 직접 덤프 및 리로드 하도록 한다.
    • --disbles-keys, -K : 각각의 테이블에서 insert 명령문을 /*!40000 alter table tablename disable keys */; 끝에 /*!40000 alter table tablename enable keys */; (surround). 모든열이 삽입된 후에 인덱스를 생성 한다. 
    • --no-data ,-d  : 테이블의 데이터를 제외한 구조만 덤프 받을 경우 사용한다.
    • --no-create-db, -n : Create Database 구문을 포함하지 않는다.
    • --no-create-info, -t : 덤프되는 테이블의 Create 구문을 작성하지 않는다.
    • --quick, -q : 대형 테이블을 덤프할때 유용함. 쿼리를 버퍼링 하지 않고 다이렉트로 출력.
    • --extended-insert , --e : 다중행 insert 구문을 사용하여 좀더 작고 빠른 insert 구문을 생성한다.
    • --lock-tables, -I : 백업용 읽기를 위해 모든 테이블에 락을 건다.
    • --opt : --add-drop-table, --add-locks --all --extended-insert --quick --lock-tables 옵션들을 모두 설정한 것과 같다.(기본활성화됨)
    • --skip : 옵션을 해제 할때 사용 예) --skip-add-drop-table 등등.
    • --compress, -C : 클라이언트 및 서버가 압축을 지원할 경우 두 서버간에 전달되는 정보를 압축한다.


  • 백업 및 복구
    • 백업(논리 백업)
      • db 전체 덤프
        mysqldump -u아이디 -p비밀번호 --all-databases > 저장파일 명
      • 특정 db 덤프
        mysqldump -u아이디 -p비밀번호 db명 > 저장파일 명
      • 테이블 구조만 덤프
        mysqldump -u아이디 -p비밀번호 --no-data db명 [특정테이블만 받을경우 테이블명] > 저장파일 명
      • 데이터만 덤프( 테이블 구조 제외)
        mysqldump -u아이디 -p비밀번호 --no-create db명 [특정테이블만 받을경우 테이블명] > 저장파일 명
    • 물리 백업 (자료 수집후 정리 포스팅 예정)

    • 복구(논리 복구)
      • 덤프파일을 이용한 복구
        mysql -u아이디 -p비밀번호 db명 < 저장파일 명
    • 물리복구(자료 수집후 정리 포스팅 예정)





  • 쿼리
    • 테이블 이름 변경
      • ALTER TABLE `원테이블명` RENAME `변경테이블명`;
    • RowNumber 읽어오기
      • SELECT
        @i:=@i+1 AS iterator,
        t.*
        FROM
        tableName AS t,
            (SELECT @i:=0) AS row_number;



Mysql 과 Visual Studio 2012 이상 버전의  Connector 관련 내용

  • 닷넷용 및 기타 언어들의 커넥터를 지원 하는데 .net에서 DataSource를 사용 하기 위해서는 해당 커넥터의 프로바이더가 필요함.
  • 기본적으로 소스만 사용 할 경우  dll파일만 참조하여 코딩하는데 문제는 없지만
    닷넷에서 제공하는 SqlDataSource 등을 이용 하기 위해서는 해당 프로바이더가 등록 되어 같이 컴파일 되어야함.
    http://dev.mysql.com/doc/connector-net/en/connector-net-visual-studio.html 가보면 자세한 설명이 있음.
    요약 하면, 2012버전은 커넥서 6.6 이나 6.7 을 지원하고 2013은 6.8 버전이 지원 한다는 말임. 지원하는 mysql 버전도 표로 나와있음.



[참고] : http://cdral.net/925