[Database] MySQL 기본 명령어 - 데이터베이스 및 사용자 계정


MySQL 기본 명령어 - 데이터베이스

  • 본 포스팅은 Windows를 기준으로 작성되었습니다

사용할 데이터베이스 지정하기

  • A. 로그인시 지정하기

    • Windows 프롬프트 상에서 사용
    • 명령어 : mysql –u계정 –p비밀번호 데이터베이스명

          mysql -uroot -p mysql
              
          또는
              
          mysql -uroot -p1234 mysql
      
  • B. 로그인 후 지정하기

    • MySQL 내의 “mysql>” 프롬프트 상에서 사용
    • 명령어 : use 데이터베이스명

        show databases;
            
        use mysql;
      


데이터베이스 및 테이블 리스트 보기

  • A. 데이터베이스 리스트 보기

    • 명령어 : show databases;

          show databases;
      
  • B. 테이블 리스트 보기

    • 데이터베이스를 선택한 후 사용
    • 명령어 : show tables;

          use mysql;
              
          show tables; 
      
  • C. 테이블 구조 살펴보기

    • 데이터베이스를 선택한 후 사용
    • 명령어 : desc 데이블명;

        use mysql;
              
        desc user;
      


데이터베이스 생성 및 삭제

  • A. 데이터베이스 생성

    • 명령어 : create database 데이터베이스명;

        show databases;
               
        create database testdatabase;
              
        show databases;
      
  • B. 데이터베이스 삭제

    • 명령어 : drop database 데이터베이스명;

           show databases;
                            
           drop database testdatabase;
               
           show databases;
      



MySQL 기본 명령어 - 사용자 계정


사용자 계정 만들기

  • A. 현재 등록되어 있는 계정 확인하기

    • mysql내의 user 테이블의 투플 확인
    • 조회하고자하는 속성을 지정
    • 명령어 : select 속성1, … , 속성n from user;

      • 전체 속성을 나타내기 위하여 * 사용

          use mysql;
                
          select host, user, password frm user;
        
        • [참고]

          • localhost : 자기 자신의 컴퓨터
          • password
          • 암호화되어 저장됨
          • 암호화된 것을 풀수 있는 방법은 제공되지 않음
  • B. 계정 만들기

    • 계정을 등록하는데 사용되는 테이블 : mysql 데이터베이스 내의 user와 db
    • 명령어
      • 비밀번호 없는 계정 만들기

        • CREATE USER ‘계정이름’@’localhost’;

            use mysql;
                     
            select host, user, password frm user;
                     
            create user 'kimc'@'localhost';
                     
            select host, user, password frm user;
          
  • C. 비밀번호를 가진 계정 만들기

    • CREATE USER ‘계정이름’@’localhost’ IDENTIFIED BY ‘비밀번호’;

          use mysql;
              
          select host, user, password frm user;
              
          create user 'kimc'@'localhost' identified by '1234';
              
          select host, user, password frm user;
      


사용자 계정에 권한 부여 및 삭제

  • A. 지정한 계정에 특정 데이터베이스 접근 권한 주기

    • (1) 주의 사항

      • root 계정에서만 사용자 계정의 데이터베이스 접근 권한을 줄 수 있음
      • 접근권한을 설정하기 전에는 데이터베이스에 접근 불가능
      • 접근 권한을 부여하지 않은 데이터베이스에는 접근할 수 없음
    • (2) 접근 권한 부여 전

        • kimc 계정에 testdatabase 데이터베이스 접근 권한 부여 전

            show databases;
          
          • 접근 가능한 데이터베이스 확인
    • (4) 접근 권한 부여 명령어

      • 명령어

          insert into db values ( ‘localhost’, ‘데이터베이스명’, ‘계정’, ‘y’, ‘y’, ... ‘y’ );
        
        • 총 19개의 ‘y’
    • (5) 시스템에 적용하기 전

      • kimc 계정에 로그인
      • 접근 가능한 데이터베이스 확인

          use testdatabase
        
        • 데이터베이스 사용 시도
    • (6) 변경된 설정 시스템에 적용하기

      • db에 추가된 권한은 시스템에 자동으로 적용되지 않음
      • 명령어 : flush privileges;

          flush privileges;
        


  • B. 계정의 권한 설정

    • user 테이블에 정의된 모든 권한을 계정에 부여
    • 모든 데이터베이스에 적용됨
    • 명령어

      • GRANT ALL PRIVILEGES ON * .* TO ‘계정’@‘localhost’ WITH GRANT OPTION;

          grant all privileges on * .* to 'kimc'@'localhost' with grant option;
        


계정 비밀번호 변경하기

  • 계정 비밀번호는 user 테이블에 암호화되어 저장되어 있다.

  • 비밀번호 변경은 user 테이블의 password 속성을 변경하는 것

  • 암호화시키기 위하여 password( ) 함수를 사용

    • (1) 계정의 비밀번호 변경

      • 명령어 : update user set password=password( ‘새비밀번호’ ) where user=’계정‘;
    • (2) 변경된 비밀번호로 계정에 로그인하기

      • 변경된 설정을 시스템에 적용하기

        • MySQL 내에서 flush privileges; 사용


계정 삭제하기

  • 계정 정보는 user 테이블에 있으며, 삭제할 계정의 레코드(투플)을 삭제

  • 명령어 : drop user ‘계정’@‘localhost’;

      drop user 'kimc'@'localhost';