본문 바로가기
AWS, Infra/linux

AWS CentOS 7에서 MariaDB 서버 셋팅하기

by RoJae 2021. 9. 16.
AWS CentOS 7에서 MariaDB 서버 셋팅하기.

AWS CentOS 7에서 MariaDB 서버 셋팅하기.


#서버구축 #aws #centos #mysql


  • 초기 서버구성에서, 중요할 것 같은 내용을 디비 구축과 함께 정리하였습니다.

! 실제 운영을 위해서는, root의 권한을 절대적으로 숨겨야한다.

이를 위해서는, AWS에서는 root를 key파일을 가지고 로그인하도록 하며
사용자, 서비스는 아이디/패스워드로 로그인이 가능하도록 할 수 있다.

이때 주로 생기는 문제가, sudo의 권한이 없기 때문에
서비스 기동이 되지 않는다.

특히 mariadb(mysql)을 service mysql start 커맨드로 기동을 시키면
system 계열의 명령어 (systemmd, systemctl)을 통해서 root 권한을 요청하게 되는데.

mysql 공식 사이트에서는 
이를 mysqld와 mysqladmin을 사용하는 것을 안내하고 있다.






계정 생성


어드민 계정 생성


cat /etc/passwd							# 계정조회
sudo useradd 어드민계정 -m -s /bin/bash		# 사용자 계정 생성
sudo passwd 어드민계정						# 비밀번호 갱신하기
cat /etc/passwd							# 계정조회

# root 권한도, 아래 파일 함부로 수정 못함. (기본 readOnly)

.0						# sudo 명령이 필요하다.



사용자 계정 생성

cat /etc/passwd							# 계정조회
sudo useradd 계정명 -m -s /bin/bash		# 사용자 계정 생성
sudo passwd 계정명							# 비밀번호 갱신하기
cat /etc/passwd							# 계정조회

#sudo vi /etc/sudoers						# sudo 명령어 추가시..








데이터베이스 설치 및 설정


데이터베이스 설치

CentOS7 MariaDB 설치 - 제타위키


데이터베이스 계정 설정


  • 계정정보 위치
su - mysql			#  자동으로 생성된 계정 로그인
cat /etc/passwd		#  계정조회, 확인
sudo vi /etc/passwd	#  계정정보 편집


  • 디비계정 비밀번호 갱신
sudo passwd mysql 		# 2번의 확인으로 비밀번호 갱신
현재 noLogin 속성으로 인한, 계정 비활성화.
  • 디비계정 활성화
# 이전
mysql:x:997:994:MySQL server:/var/lib/mysql:/sbin/nologin

# 이후
mysql:x:997:994:MySQL server:/var/lib/mysql:/bin/bash


데이터베이스 원격 접속 설정


  • 위치
cd /etc/my.cnf.d
sudo vi server.cnf


  • 원격접속 설정
[mysqld]
user=mysql
port=[접속포트]
bind-address=0.0.0.0



데이터베이스 - 원격 접속 계정설정


  • 데이터베이스 접속
mysql


  • 원격 마스터 계정 생성
create user[새로운계정]’@‘%’ identified by[‘새로운계정];
  • 조회
select host, user, password from user;
  • 권한 부여
grant all privileges on [담당데이터베이스].* to[새로운계정]’@‘%;
  • 테스트 테이블 생성
CREATE TABLE TBL_TEST(
    id int not null auto_increment,
    name varchar(100) not null,
    primary key(id)
);
  • DBeaver를 통해 원격 접속.







사용자 계정 로그인 설정


설정경로

sudo vi /etc/ssh/sshd_config


패스워드를 통한 로그인 설정.

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes
#PermitEmptyPasswords no
#PasswordAuthentication no


Ssh 재기동

service ssh restart





실제 사용자 계정 사용


예) 사용자가 디비서비스를 중지할 경우

# 로그인
ssh [사용자계정]@[IP]

# 스위칭 (사용자계정 -> 서비스계정)
su - mysql

# 디비서비스 중단
mysqladmin shutdown





참고


MariaDB 명령어

# start
mysqld

# stop
mysqladmin shutdown


일반사용자 기동법

MySQL :: MySQL 8.0 Reference Manual :: 6.1.5 How to Run MySQL as a Normal User



방화벽에서 막힐 시

firewall-cmd --zone=public --permanent --add-port=33066/tcp
firewall-cmd --reload

댓글