본문 바로가기

Linux

[Linux] MySQL 계정생성 삭제, 권한부여 제거 등등 기본명령어

에러 : mysql 설치 후 기본적인 테이블 생성 및 사용자추가 권한부여 등등 필요한 작업이 있는데, 정확하게 알고 있지 않았습니다

 

원인 : DB전문가가 아니다보니, 필요 없겠다라고 생각 하고 있었습니다

 

해결방법 : 서버관리자라 하더라도, 아주 전문가 수준까지는 아니지만 급한상황에 대처할 수 있는 기본적인 mysql 사용법은 익히고 있어야 빠른 처리에 도움이 되는 거 같습니다

 


DB생성 :

create database $DATABASENAME;

 

DB사용 : 

use $DATABASENAME;
 - 해당 DB의 데이터를 관리하기 전 어떠한 DB를 사용할지에 대해 정의합니다

테이블생성 : 

create table $TABLENAME(
name char(10),
addr char(80),
number char(20),
primary key(number)
 );


테이블확인 : 

show tables;


테이블 상세확인 : 

desc $TABLENAME;


사용자 확인 : 

select user from user;
select user, host from user;


사용자 생성 : 

create user '$USERNAME'@'localhost' identified by '$PASSWORD';
create user '$USERNAME'@'%' identified by '$PASSWORD';
 - localhost는 내부에서, %는 외부에서 사용할 계정에 대하여 생성하는 것 입니다
 
사용자 권한부여 : 

grant all privileges on $DATABASENAME.* to $USERNAME@'localhost' identified by '$PASSWORD';
grant all privileges on $DATABASENAME.* to $USERNAME@'%' identified by '$PASSWORD';
 - localhost는 내부에서만, %는 외부를 뜻하고 가급적이면 외부의 권한은 제거하는게 보안에 도움이 됩니다
 - all privileges 는 모든권한을 부여하는 명령어이고, 필요에 맞게 검색하시어 원하는 권한을 부여 하시면 됩니다 

 

사용자 권한제거 : 

revoke all on $DATABASENAME.* to $USERNAME@'localhost' identified by '$PASSWORD'; 

revoke all on $DATABASENAME.* to $USERNAME@'%' identified by '$PASSWORD'; 

 

revoke select,delete on $DATABASENAME.* to $USERNAME@'%' identified by '$PASSWORD'; 

 - 특정권한만 제거 하는 명령어이고 응용하여 사용하시면 됩니다

  
사용자 삭제 : 

drop user '$USERNAME'@localhost

drop user '$USERNAME'@


사용자 접속 : 

mysql -u $USERNAME -p$PASSWORD


변경사항 저장 : 

flush privileges;

 

데이터 추출 :

# mysqldump  -u $USERID -p$PASSWORD $DATABASENAME > $SQLFILE.sql

 - 흔히 mysql dump 덤프뜬다 라고 표현합니다.


데이터 넣기 : 

# mysql -u $USERID -p$PASSWORD $DATABASENAME < $SQLFILE.sql