본문 바로가기
Programming/Database

Ubuntu Linux MySQL 설치하기 / 사용자 / 접속 명령어 우분투에서 MySQL 데이터베이스 10분만에 이해하기

by 하하호호 2021. 12. 2.
반응형

 

1. 설치하기


# 우분투 apt 저장소 업데이트
$ sudo apt-get update

# mysql 서버 설치하기
$ sudo apt-get install mysql-server

# 우분투 방화벽 허용
 - MySQL 포트 3306을 사용하기 때문에 방화벽을 열어준다.
$ sudo ufw allow mysql

# MySQL 실행하기
$ sudo systemctl start mysql

# MySQL 접속
mysql -h 서버주소 -u 사용자명 -p 비밀번호 데이터베이스이름
$ sudo mysql -h localhost -u root -p

# MySQL 종료
mysql> quit

 

2. MySQL 사용자 관리

# 사용자 CREATE
localhost에서 접속하는 USER 계정을 생성한다.
mysql> CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password';
모든 서버에서 접속가능한 USER 계정을 생성한다.
mysql> CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password';

# 사용자 권한 설정
사용자에게 모든 권한을 일임하는 명령어다.
WITH GRANT OPTION 옵션은 다른 사용자에게 권한을 부여하고 회수할 수 있다.
*.* 은 모든 Database.모든 table의 권한을 의미한다.

ALL PRIVILEGES를 대신해서 SELECT, UPDATE, DELETE, CREATE, INDEX, DROP, 등의
권한 명칭을 따로 설정해서 세부적인 권한설정이 가능하다.

mysql> GRANT ALL PRIVILEGES ON *.* TO 'testuser'@'localhost' WITH GRANT OPTION;

권한 해제는 REVOKE 명령어를 사용한다.
mysql> REVOKE ALL PRIVILEGES *.* FROM 'testuser'@'localhost';

사용자 삭제는 DROP 명령어를 사용한다.
mysql> DROP USER 'testuser'@'localhost';

권한 설정을 업데이트 한다.
mysql> flush privileges;

### ERROR 1396 (HY000): Operation DROP USER failed for ###
 - 1396 에러코드는 권한 설정의 문제를 의미한다.
 - 권한설정을 직접 조작하는 과정에서 충돌이 발생한 것이다.
 - 사용자 계정을 모두 삭제한 뒤 다 시 시도한다.
 - 사용자 계정 정보는 mysql.user + mysql.db에 저장된다.
 delete from mysql.user where User ='삭제할 아이디'; 
 delete from mysql.db where User ='삭제할 아이디';
 flush privileges;

 

3. 데이터베이스 작업

# 데이터베이스 목록 확인
mysql> SHOW DATABASES;

# 데이터베이스 접속
mysql> USE databasename;

# 테이블 목록 확인
mysql> SHOW TABLES;

 

4. 현재 접속정보

# 현재 접속한 서버, 아이디등 세션정보를 확인한다.
mysql> status;

# 프로세스 목록 확인
현재 진행중인 프로세스 목록을 확인한다.
mysql>  SHOW processlist;

# 프로세스 종료
mysql> KILL pid(프로세스아이디);
반응형

댓글