ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AWS CentOS 7에서 MariaDB 서버 셋팅하기
    AWS, Infra/linux 2021. 9. 16. 22:18
    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
    
    반응형
Designed by Tistory.