MySQL 8.0 초기 세팅(root 패스워드 변경, DB 생성, 사용자 추가까지)

출처 : 나무위키

얼마전 우분투 21.04 버전에서 MySQL 8.0 버전의 MySQL-SERVER 를 설치했습니다. 

MySQL을 설치하고 나면 첫 계정의 패스워드는 공백으로 접속이 가능했습니다. root 계정에는 높은 권한을 가지고 있는 계정이기 때문에 보안을 유지해줘야 할 필요성이 있어 DataBase를 생성한 뒤에도 root의 계정이 아닌 별도의 계정을 생성하고 별도로 생성한 계정에 DataBase접근 권한을 설정하여 root가 아닌 별도의 계정으로 DataBase에 접근 할 수 있도록 해주는 것이 좋습니다. 

 

MySQL root계정 비밀번호 변경 
mysql -u root -p

공백의 비밀번호를 가진 root 계정으로 mysql에 접속합니다. 

ALTER USER 'root'@'localhost' IDENTIFIED BY '1234';

ALTER USER를 사용해서 'root' 계정의 비밀번호를 변경 할 수 있는데 뒤의 '1234' 부분에 원하는 비밀번호를 입력하시면 됩니다. 

이제 mysql을 root 계정으로 접속할 때 위에 설정한 비밀번호를 입력하고 접속하시면 됩니다. 

 

MySQL 계정 추가하기! 

 

CREATE USER 'hongji'@'localhost' IDENTIFIED BY '1234'

위에 계정의 비밀번호를 변경할때 사용한 ALTER에서 CREATE로 바꿔서 작성하면 계정을 생성할 수 있는 명령어가 됩니다. 계정 생성은 'hongji' 부분에 원하시는 계정명을 입력하고 마지막 '1234' 부분에는 패스워드를 입력해주시면 됩니다. 

 

FLUSH PRIVILEGES;

프로그래밍 언어를 배우다 보면 종종 보게 되는게 FLUSH 입니다. 일반적으로 FLUSH는 버퍼의 내용을 지우고 버퍼링된 데이터가 파일에 저장되도록 버퍼를 비워주는 녀석입니다. FLUSH PRIVILEGES를 사용하면 위에서 유저의 생성과 수정한 내용을 바로 적용시켜주게 됩니다

SELECT USER, HOST FROM mysql.user;

user에 대한 정보는 데이터베이스 명 mysql의 user테이블에 있으며 방금 등록한 유저가 정상적으로 들어갔는지는 SELECT로 USER명과 ㅗHOST 정보만 출력해서 보면 등록된 사용자가 표시되어지는지 확인해 볼 수 있습니다. 

 

MySQL에 DATABASE 만들기 
CREATE DATABASE newdb;

새로운 데이터베이스 생성은 CREATE DATABASE db명; 으로 생성 할 수 있습니다. 저는 jikun이라는 DB를 생성해봤습니다.

SHOW DATABASES;

SHOW DATABASES;로 mysql에 있는 데이터베이스 목록을 확인해볼 수 있습니다. 

 

저는 jikun이라는 DB를 생성했고 SHOW DATABASES로 확인해보면 중간에 jikun 이라는 DB가 목록에 표시되는 것을 확인해볼 수 있습니다. 각자 지정한 DB명이 목록에 잘 표시가 되는지 확인해보시면 됩니다.

 

 사용자(hongji)를 생성된 DB(jikun)에 권한 주기 
GRANT ALL PRIVILEGES ON jikun.* to hongji@localhost;

GTANT 를 사용해서 jikun 부분에는 DB명을 뒤의 hongji부분에는 유저명을 입력해 주시면 됩니다. 

FLUSH PRIVILEGES;

다음으로 적용을 시켜주신 다음 사용자 hongji가 어떤 권한을 가지고 있는지 한번 확인해보겠습니다. 

SHOW GRANTS FOR hongji@localhost

검색을 해보면  데이터베이스 jikun에 대한 권한을 잘 가지고 있음을 확인해 볼 수 있습니다. 

hongji 사용자는 localhost로 지정되어 있는데 이것은 내부에서 jikun db에 접속할 수 있는 권한을 가지고 있게 되는 것 입니다. 외부에서 접속을 하려고 한다면 접속할 ip를 지정한 계정을 만들거나 모든 접속이 가능한 %의 계정을 만들어주면 됩니다. 

 

사용자(hongji)를 외부에서도 접근 할 수 있도록 % 사용자 추가 
CREATE USER 'hongji'@'%' IDENTIFIED BY '1234';
GRANT ALL PRIVILEGES ON jikun.* TO 'hongji'@'%';
FLUSH PRIVILEGES;

위에 사용자를 추가했을때와 똑같잉 CREATE 와 GRANT를 사용하지만 host의 지정이 localhost가 아닌 '%' 호스트로 추가해 줍니다. 

다음에는 외부에서도 접속이 잘 되어지는 확인하는 것만 남았네요. 

댓글

Designed by JB FACTORY