리눅스(Linux)

리눅스(Linux) DB 설정 (5)

백코딩 2023. 12. 11. 09:24
728x90

 

1. MariaDB 다운로드 및 설치

curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup

 

curl은 원격 서버에서 또는 원격 서버로 데이터를 전송하는 강력한 명령줄 도구입니다. 컬을 사용하면 HTTP, HTTPS, SCP, SFTP 및 FTP와 같은 다양한 네트워크 프로토콜을 사용하여 데이터를 다운로드하거나 업로드할 수 있습니다.

 

cd /etc/yum.repos.d

 

위의 폴더로 이동하여 ls 또는 ll로, mariadb.repo라느 파일 생성을 확인 합니다. 파일이 없을 아래 명령을 입력하세요.

yum -y install MariaDB-server

 

만약에 Requires : pv 에러가 뜰 경우 아래 명령어 입력

yum install epel-release

 

EPEL 저장소를 설치하면, 표준 리포지토리에 포함되지 않은 추가 소프트웨어 패키지에 액세스할 수 있게 됩니다. EPEL 저장소는 리눅스 시스템의 기능을 확장하고, 필요한 추가 소프트웨어를 쉽게 설치할 수 있게 해줍니다.

 

Requires : pv 라는 에러 메시지는 일반적으로 리눅스 시스템에서 특정 소프트웨어를 설치하거나 업데이트하려고 할 때 발생합니다.

다시 yum -install MariaDB-server 를 입력해준다.

 

 

2. MariaDB 설정하기

systemctl enable mariadb

 

MariaDB를 자동으로 실행되도록 합니다.

systemctl start mariadb

 

MariaDB를 실행합니다.

mariadb-secure-installation

 

MariaDB의 보안설정을 하기위해 위의 명령어를 입력합니다.

더보기

1) switch to unix_socket authentication?   

Unix Socket 인증으로 전환: 이것은 데이터베이스 서버에 대한 인증 방식을 Unix 소켓을 사용하는 방식으로 전환할 것인지를 묻는 질문입니다. Unix 소켓 인증을 사용하면, 운영 체제의 사용자 계정을 통해 데이터베이스에 접근할 수 있습니다. 이는 특히 로컬 환경에서 보안이 강화된 인증 방법입니다. 

 

2) Change the root password?  

Root 비밀번호 변경 : 이것은 데이터베이스의 'root' 사용자(가장 높은 권한을 가진 사용자)의 비밀번호를 설정하거나 변경할 것인지를 묻는 질문입니다. 보안을 위해 강력하고 안전한 비밀번호를 설정하는 것이 중요합니다.

 

3) Remove Anonymous users?  

익명 사용자 제거 : 익명 사용자는 이름 없이 데이터베이스에 접근할 수 있는 사용자를 말합니다. 보안을 위해 이러한 익명 사용자를 제거하는 것이 좋습니다.

 

4) Disallow root login remotely?   

Root 사용자의 원격 로그인 금지 : 이것은 데이터베이스의 root 사용자가 원격 위치에서 데이터베이스에 로그인하는 것을 허용할지를 묻는 질문입니다. 보안상의 이유로, 일반적으로 root 사용자의 원격 로그인은 금지하는 것이 좋습니다.

 

5) Remove test database and access to it?  

테스트 데이터베이스 제거 : 많은 데이터베이스 시스템은 설치 시 테스트 목적으로 사용할 수 있는 기본 데이터베이스를 제공합니다. 이 데이터베이스는 누구나 접근할 수 있기 때문에, 보안을 강화하기 위해 제거하는 것이 좋습니다.

 

6) Reload privilege tables now?   

권한 테이블 적용 : 이것은 설정한 모든 변경 사항(비밀번호, 권한 등)을 데이터베이스 권한 테이블에 즉시 반영할 것인지를 묻는 질문입니다. 이를 통해 변경 사항이 적용되고 데이터베이스 시스템이 업데이트된 권한 설정을 사용하게 됩니다.

 

3. port 확인 및 변경

semanage port —list | grep mysqld_port_t 또는 netstat -tnlp

 

위의 명령을 통해 리눅스 시스템에서 네트워크 및 보안 관련 정보를 확인하는 데 사용됩니다.

 

4. 포트 방화벽 해제

systemctl restart mariadb


MariaDB를 재시작합니다.

firewall-cmd —permanent —add-port=3306/tcp

 

자신의 MariaDB 포트를 방화벽에서 열여줍니다.

firewall-cmd —reload

 

방화벽을 재시작하여 추가한 내용을 적용합니다.

 

 

5. 외부 접속하기

mysql -u root -p

 

use mysql
vi /etc/my.cnf

[mysqld]
bind-address=0.0.0.0 // 전체 열기.
  • 이 명령은 vi 텍스트 에디터를 사용하여 MySQL 또는 MariaDB의 설정 파일(my.cnf)을 편집합니다.
  • [mysqld] 섹션에 bind-address=0.0.0.0을 추가하면 MySQL 서버가 모든 네트워크 인터페이스에서 연결을 수신하도록 설정합니다. 이는 어떤 IP 주소에서도 데이터베이스 서버에 접근할 수 있게 합니다.
grant all privileges on *.* to 'root'@'%' identified by '비밀번호'
  • 이 SQL 명령은 모든 데이터베이스(*.*)에 대해 'root' 사용자에게 어떤 호스트('%')에서든 접근할 수 있는 모든 권한을 부여합니다. '비밀번호'는 'root' 사용자의 새로운 비밀번호입니다.
  • 이 설정은 보안상 위험할 수 있으므로 신중히 사용해야 합니다. 이는 'root' 사용자에게 외부 네트워크에서의 전체 접근 권한을 주는 것을 의미합니다.
flush privileges;
  • 이 명령은 MySQL의 권한 관련 변경사항을 즉시 적용합니다. 즉, 새로운 권한 설정을 데이터베이스 시스템에 반영합니다.이 명령은 systemd 시스템 매니저를 사용하여 MariaDB 서비스를 재시작합니다.

 

6. DB 포트 변경

  • vi /etc/my.cnf.d/server.cnf 접속
  • [mariadb] 찾아서 port=”변경 숫자” 추가
  • 외부에서 접근하고 싶으면 firewall 설정

728x90