본문 바로가기
database

ubuntu에 mysql 설치하기

by cactuslog 2024. 11. 18.

설치

sudo apt update
sudo apt install mysql-server

 

실행

sudo systemctl start mysql

 

서버 재부팅 시 mysql 자동 시작 설정

sudo systemctl enable mysql

 

포트 오픈

mysql의 기본 포트는 3306
  • 보안 그룹에서 3306 포트 오픈
  • aws같은 클라우드 환경에서 보안 그룹VPC 수준에서 트래픽을 제어하므로 해당 EC2 인스턴스에 도달하기 전부터 외부 트래픽을 필터링
  • ufw 같은 로컬 방화벽이 설정되어 있지 않아도 외부로부터의 접근은 보안 그룹 설정에 의해 차단

 

config 설정

외부 접속 허용

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
bind-address = 0.0.0.0
  • 기본 설정인 127.0.0.1 localhost에서 모든 접속을 허용하는 0.0.0.0으로 수정

서비스 재시작

sudo systemctl restart mysql
  • config 파일 수정 후 반영을 위해 재시작

 


 

계정 관리

root 계정

  • root는 mysql 서버에서 모든 권한을 가진 최고 관리자 계정
  • 따라서 외부에서는 접속을 못하도록 설정
  • ubuntu에 설치된 mysql은 기본적으로 로컬 접속만 가능하며 비밀번호 대신 운영 체제 사용자 인증(auth_socket)을 사용

로그인

sudo mysql -u root

 

root 사용자 검색 

select user,host,plugin from mysql.user where user ='root';
+------+-----------+-------------+
| user | host      | plugin      |
+------+-----------+-------------+
| root | localhost | auth_socket |
+------+-----------+-------------+
  • host는 localhost이므로 외부 접속이 불가
  • plugin을 보면 auth_socket 방식으로 운영체제에서 사용자 인증

 

외부에서 연결 가능한 admin 계정 생성

CREATE USER '생성할계정이름'@'%' IDENTIFIED BY '비밀번호';

권한 부여

GRANT ALL PRIVILEGES ON *.* to '생성된계정이름'@'%';

권한 적용

FLUSH PRIVILEGES;

 

애플리케이션 전용 계정 생성

사용하는 데이터베이스에 대해 필요한 권한만 부여하여 사용

 

mysql 종료

exit