[Linux] MariaDB Database Server 1

tndkzjd·2024년 3월 18일

CentOS 6 버전 이하에서는 mysql이 기본 데이터베이스였는데 7 버전 이상 부터는 기본 데이터베이스가 mariadb로 바꼈다고 합니다.


일단 먼저 WebServer 우 클릭해서 복제를 합니다


이름은 임의로 설정하시면 되고 전 DB 로 설정

복제 방식 : 완전한 복제
MAC 주소 정책 : 모든 네트워크 어댑터의 새 MAC 주소 생성
한 다음 완료 누르면 됩니다

DB

💡MariaDB 설치

하기 전에 앞서
ip add -> DB 서버 IP 주소 메모장에 적어두세요!

rpm -qa mysql*

가상머신 내 mysql 설치 여부 확인합니다


내용이 없으면 설치가 안 돼있다는 뜻인데요

rpm -qa maria*

설치 해줍니다

yum list maria*


그런 다음 MariaDB 관련 파일 중 클라이언트용 mariadb와 서버용 mariadb-server 파일이 필요한데요

yum install -y mariadb mariadb-server

서비스 이용하기 위해서
mariadb-server 설치하고
DB 서버에 접속하는 용도인 클라이언트 프로그램 mariadb까지 설치

systemctl start mariadb

마리아DB 시작

systemctl status mariadb

Active: active(running) 확인해줍니다.

systemctl enable mariadb

리눅스 처음 시작될 때 자동으로 마리아DB 동작하게 만드는 명령어

systemctl list-unit-files

PgDn 버튼으로 mariadb.service 를 찾아서 enabled 설정 돼있는지 확인합니다.

q로 빠져나오면 됩니다

💡MariaDB 설정

cat /etc/my.cnf


cat: 파일의 내용을 화면에 출력하는 명령어

처음 설치하면 초기 my.cnf 파일은 내용이 적어서 마리아DB에서 제공하는 샘플 설정 파일을 복사해서 원하는 내용을 수정해서 적용해야 합니다.

cd /usr/share/mysql

샘플이 위치한 파일로 이동

ls

/user/share/mysql 에 있는 파일 요소 출력

파란색 파일은 캐릭터셋(언어)
.sql : 데이터베이스가 기본적으로 사용하는 구성, 스키마 파일
.cnf : 설정 파일

샘플 파일
my-large.cnf, my-medium.cnf, my-small.cnf 내용은 같지만 캐쉬 메모리 부분 설정이 다름!

small : 256MB
medium : 512MB
large : 1~2GB

cp /usr/share/mysql/my-small.cnf /etc/my.cnf


샘플 파일을 마리아DB 설정 파일로 복사 하는데 여기서

cp: overwrite '/etc/my.cnf'

이미 my.cnf 파일이 존재하는데 덮어쓸 건지 물어보는 건데 y 입력 하면 됩니다.

cd

cd: 사용자의 홈 디렉터리로 이동
root 사용자의 홈 디렉터리는 /root 방
홈 디렉터리 표시는 ~ 물결 표시

vi /etc/my.cnf

:set nu

입력할 때는 입력 모드인 i 누르고 입력!
저는 입력하다 다른게 눌러지는 경우가 있어 입력하고 항상 Ecs 저장 한답니다..

22번 라인 default-character-set = utf8

  • 마리아DB의 기본 언어 세팅은 라틴1로 설정 되어 있어서 한글 입력할 수 없기 때문에 기본 언어를 utf8로 설정!

29번에서 끝에서 Enter 친 다음

30번 라인 skip-name-resolve

쿼리 구문 실행시 서버가 사용자의 소속을 알아보는 과정을 생략 - 빠른 성능을 위해 설정

31번 라인 character-set-server = utf8

빠져 나올때는 Ecs -> :wq

systemctl restart mariadb

변경된 설정 적용하기 위해 마리아DB 재시작

💡실습 준비

mysql -u root

create database shopping_db;

shopping_db 데이터베이스 생성

show databases;


shopping_db 생성 됐는지 확인

use shopping_db;


shopping_db 사용

customer 테이블 생성

create table [테이블명] ;

purchase 테이블 생성

show tables;


테이블 잘 생성됐는지 확인

customer 테이블에 데이터 입력

customer 테이블 조회

💡 사용자 추가

grant all on shopping_db.* to 계정이름@'localhost' identified by '1234';

grant all : CRUD 모든 권한 부여
on shopping_db.* : shopping_db 데이터베이스 내에 있는 customer, purchase 테이블
to 계정이름@'localhost' : 마리아DB가 설치된 운영체제 리눅스에서 접속하는 계정
identified by '1234' : 비밀번호를 1234로 설정

flush privileges;

관련 설정 후에 적용 시킴

exit

mysql -u계정이름 -p1234

리눅스 접속하는 계정으로 마리아DB 접속

show databases;


아까 보였던 mysql 은 root 계정만 보이기 때문에 일반 유저 계정 이름은 접근할 수 없다

💡 사용자 삭제

drop user 계정이름@'localhost';

오류 발생!
사용자 삭제는 root 만 할 수 있다


아직 root 계정의 암호를 설정하기 전이어서 엔터키를 누르면 접속 가능하다

WebServer

WebServer 가상 머신 실행 시킨 다음 IP 주소 메모장에 적어두기!

💡 외부에서 MariaDB 접속(리눅스 -> MariaDB)

실습 위해서 다른 WebServer 리눅스 머신 실행

터미널 -> ip add -> ip 주소 확인 후 메모장에 적어두기!

DB

grant all on shopping_db.* to 계정이름@WebServer IP 주소 identified by '1234';

flush privileges;

변경 사용 적용

exit

WebServer

yum install -y mariadb

DB 서버로 접속하기 위한 클라이언트 프로그램 설치

mysql -uitwill -hDB IP 주소 -p

입력하면 ERROR 2003 이 뜨는데요
DB 서버 방화벽이 동작하고 있는데 mysql 허용하지 않았으면 오류가 발생합니다

DB

방화벽 설정
설정: 영구적으로 바꿔준 다음
서비스에 있는 mysql 선택 해줍니다

그런 다음 상단에 옵션에서

WebServer

mysql -uitwill -hDB IP 주소 -p

입력하면 DB 서버 방화벽이 설정 되서 원격 접속이 허용 됩니다.

💡 외부에서 MariaDB 접속 (윈도우 -> DB서버)

이제 윈도우 IP 주소가 필요한데요
cmd -> ipconfig -> IPv4 주소 확인 해서 메모장에 적어두기!

DB

mysql -uroot

grant all on shopping_db.* to 계정이름@'윈도우 IP 주소' identified by '1234';

그럼 윈도우 IP 주소를 가지는 장치에서 계정 이름으로 접속 허용하게 됩니다

flush privileges;

exit

💡워크벤치 실행

Test Connection 버튼으로 접속 확인 창 확인 후에

OK 눌러야 돼요

이제 워크벤치 보면 이렇게 MariaDB 연결 된 걸 볼 수있습니다


아까 데이터 입력했던게 윈도우에 있는 워크벤치에서도 확인 할 수 있게 됩니다!

profile

0개의 댓글