본문 바로가기
[파이썬]/프로그래밍

[파이썬][프로그래밍] MariaDB 설치

by sung min_Kim 2023. 11. 20.
MariaDB

MySQL의 기능을 향상 시 오픈소스 관계형 데이터베이스


· MariaDB를 사용하는 이유는 ?


 MariaDB는 MySQL의 대체제로 개발되었으며, MySQL에 비해 더욱 개선된 성능, 보안, 안전성을 제공하면서도 기존 MySQL 사용자들이 쉽게 전환할 수 있도록 높은 호환성을 유지하고 있다.

 또한, 오픈소스라는 특징을 가지고 있어 사용자들에 의해 지속적으로 개선되고 있으며, 이를 통한 높은 가성비를 제공한다.

 


· 설치 방법

 

1. MariaDb 다운로드, https://mariadb.org/download
 

Download MariaDB Server - MariaDB.org

REST API Release Schedule Reporting Bugs … Continue reading "Download MariaDB Server"

mariadb.org

MariaDB 다운로드 화면

 

 MariaDB 공식 다운로드 홈페이지에 접속하여 MariaDB를 다운로드한다. 


  • Version : 10.3 버전부터 'PL/SQL'을 지원한다. 본인은 10.11.6 버전을 사용하였다.

  • Operating System : 운영 체제로, Windows로 설정하였다.

  • Architecture : 시스템 구성으로, 본인은 64비트를 설정하였다.

  • Package Type : MSI Package(Microsoft Installer Package)는 Microsoft에서 개발한 설치 패키지 형식으로, 자동으로 소프트웨어를 설치, 업데이트, 삭제 및 네트워크 원격을 통한 설치도 가능하게 하여 준다.
    Window 환경에서 자동 설치를 원한다면 ' MSI Package'를 선택하여 주도록 하자.

 

2. * 설치 시 패스워드 설정

설치 시 패스워드 입력창

 
 설치 시 패스워드를 입력하라는 창이 뜬다. 패스워드를 설정하는 이유는 데이터베이스의 보안 때문이다.
 설정된 패스워드는 'root'라는 사용자 계정에 연결되므로 패스워드를 잊어버리지 않도록 하자.
 패스워드를 입력하였다면 Next를 클릭하여 최종 install 하여 주도록 하자.


3.  * 절대 권한 계정 생성 (root)

root 계정 및 패스워드 입력

 HeidiSQL( = DB 클라이언트 툴)을 실행하여, 'root' 세션을 생성하여 준다.
 
 'root' 계정은 MariaDB에서 가장 높은 권한을 가진 계정으로, 데이터베이스의 모든 작업을 수행할 수 있다.
 즉, 데이터베이스 시스템의 최고 관리자임을 의미한다.

 이렇게 'root' 계정을 통해 필요한 사용자 계정을 추가로 생성하고, 각 사용자에게 적절한 데이터베이스 접근 권한을 부여하여 각 사용자가 데이터베이스에서 수행할 수 있는 작업을 제한하고, 데이터베이스의 보안을 유지한다.

 생성한 'root' 세션을 열어주도록 하자.



4.  사용자 계정 생성

사용자 계정 설정

 MariaDB와 MySQL에서는 사용자 정보가 'mysql' 데이터베이스의 'user'테이블에 저장된다.
 따라서 새로운 사용자를 생성하거나 기존 사용자의 권한을 변경하려면 'mysql' 데이터베이스의 'user'테이블을 수정해야 한다.
 ('mysql' 데이터베이스를 클릭한 이후에 사용자 계정을 생성하자.)

 사용자 계정은 내부와 외부의 사용자 계정으로 나뉜다.
 계정을 생성한 결과, 'user' 테이블에 '내부 사용자(localhost)'와 '외부 사용자(%)'가 생성된 것을 볼 수 있다.

 (권한 변경에 대한 내용은 아래의 순서에서 다루겠다.)


  • 내부 사용자 : 내부에서만 접근이 가능한 사용자 계정이다.
    일반적으로 'localhost'라는 호스트에서 접속하는 사용자를 의미하며, 이는 데이터베이스 서버가 실행 중인 같은 컴퓨터에서 접속하는 사용자를 가리킨다.

    * 내부 사용자 계정을 생성하기 위한 명령어 : CREATE user 계정명
                                           IDENTIFIED BY 'root 패스워드' 



  • 외부 사용자 : 외부에서도 누구나 접근이 가능한 사용자 계정이다.
    외부 사용자는 'localhost'가 아닌 다른 호스트에서 접속하는 사용자를 의미한다.
    이는 다른 컴퓨터 혹은 인터넷을 통해 데이터베이스 서버에 접속하는 사용자를 가리킨다.

    * 외부 사용자 계정을 생성하기 위한 명령어 : CREATE user '계정명'@'%'
                                           IDENTIFIED BY 'root 패스워드' 



  • 사용자 계정을 삭제하기 위한 명령어 :  DROP user gjuser@localhost;


  • 사용자 계정 조회 : SELECT * FROM user;



5. 데이터베이스 생성

데이터베이스 생성

 사용자가 사용할 공간인 데이터베이스를 생성한다.
 아래의 명령어를 실행한 이후 새로고침을 하면 'gjdb' 데이터베이스가 생성된 것을 볼 수 있다.

 

  • 데이터베이스를 생성하기 위한 명령어 : CREATE DATABASE 데이터베이스명;

  • 데이터베이스를 삭제하기 위한 명령어 : DROP DATABASE 데이터베이스명;



6. 사용자 권한 부여

사용자 권한 부여

 사용자가 접속하고, 데이터베이스를 사용할 수 있는 권한을 부여한다. 권한을 부여한 이후에는 실제 메모리에 적용시키도록 하자.

 

  • 권한을 부여하기 위한 명령어 : GRANT ALL PRIVILEGES ON 데이터베이스명.* TO '사용자계정명';


  • 권한을 해제하기 위한 명령어 : REVOKE ALL PRIVILEGES ON 데이터베이스명.* FROM '사용자계정명 ';


  • 메모리에 적용시키기 위한 명령어 : FLUSH PRIVILEGES;


 이로써 사용자 계정으로 접속하여 Table 설계( = DB 설계 & DB 모델링)를 수행할 수 있다.
 데이터를 저장할 수 있는 공간인 테이블을 생성하여, 해당 사용자는 데이터베이스에 접근하여 데이터의 입력, 수정, 삭제, 조회 (CRUD)를 수행할 수 있는 상태가 된다.