개발

[Linux] MySQL 명령어 : 접속, 데이터베이스, 사용자 계정 생성 등

MySQL Database 생성하기

  • MySQL 실행하기
./mysqld_safe

 

  • MySQL 실행 확인
ps -ef | grep mysql

 

  • MySQL 접속하기
./mysql -u root -p

# 비밀번호 입력
Enter password: 

# 접속완료
mysql>

 

  • 현재 데이터베이스 목록 조회
mysql> show databases;

 

  • 데이터베이스 생성 (한글 깨짐 방지를 위해 utf8로 생성)
create database testDB default character set utf8;
  • MySQL 에서 Database 를 생성할 때 character set 과 collate 를 지정할 수 있다. (생략시에는 MySQL 서버의 기본 설정을 따른다.)
  • Character Set은 무엇인가?
    • 문자들과 그 문자들을 코드화한 인코딩들의 조합
    • ex) 문자 (A, B, a, b) 그리고 그 문자들의 인코딩들(A=0, B=1, a=2, b=3)의 조합
  • Collation은 무엇인가?
    • 해당 문자셋을 어떻게 정렬할지를 결정하는 알고리즘

 

MySQL 사용자 추가하기

  • 등록된 사용자 계정 정보를 확인
mysql> SELECT User, Host FROM mysql.user;

 

  • 사용자 계정 설정:   create user 사용할계정@'%' identified by '사용할 비밀번호';
# 사용자만 추가
mysql> create user 사용자id;

# 비번을 함께 설정 추가
mysql> create user 사용자id@localhost identified by '비밀번호';
예시) mysql> create user test_DB@'%' identified by '123456@';

# 외부('%')에서 접근을 허용
mysql> create user 'userid'@'%' identified by 'password';

'''
서버가 클라우드형태로 존재하거나 원격지에서 접속해야할 경우
서버 아이피, 원격지에서 접속할 고정IP 또는 public ip를 추가하면 된다.
'''
mysql > CREATE USER 'userId'@'192.168.xxx.xxx' identified by 'password';

 

  • 사용자 권한 부여, 삭제, 확인 (mysql 버전별로 명령어 다름 [참고])
    • 사용자에게 권한을 부여할때는 grant 명령어를 사용하고, 권한을 제거할때는 revoke 명령어를 사용한다.
# 사용자 권한부여
# 사용법 : grant all privileges on [DB이름].* to [계정이름]@'외부접속 권한' identified by '[패스워드]';
mysql > GRANT ALL PRIVILEGES ON devdb.* TO 'userId'@'192.168.xxx.xxx';

# 사용자 권한삭제
mysql > REVOKE ALL PRIVILEGES ON devdb.* TO 'userId'@'192.168.xxx.xxx';

# 사용자 권한확인
mysql > SHOW GRANTS FOR 'userId'@'192.168.xxx.xxx';