라즈베리파이에서 MySQL 대신 MariaDB를 사용해야하는 이유

JUN·2024년 3월 14일
1

sql

목록 보기
4/6

라즈베리파이에 배포를 위해 mysql 설치를 하던 중 시행착오를 겪었다.

# 해당 에러 검색

Package mysql-server is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
mariadb-server-10.0

apt-cache madison mysql-server 로 검색해봐도 mysql 패키지가 나오지 않아 당황했다.

찾아보니 다들 mariaDB를 사용하라는 말들 뿐이었다. 이유를 알고싶어 검색했는데 간단한 이유였다.

  1. 라즈비안은 데비안 기반으로 만들어진 배포판이며 데비안의 패키지 관리 시스템을 사용함.
  2. Debian 10 (Buster) 부터는 기본 이미지로 MySQL 대신 MariaDB가 제공됨.
  3. (따라서) apt-get로 데비안의 패키지 관리 시스템에 MySQL을 설치하려고 접근하면 MariaDB 로 대체하라는 메시지를 보게되는 것.

그럼에도 불구하고 Regacy 시스템과의 호환성을 위해 MySQL를 설치해야하는 경우도 분명 있을 것이다.
-> 그런 분들은 링크 를 참고하시라!

나는 사이드 프로젝트를 배포하는 것이 목적이고 아래 이유로 MariaDB를 사용하기로 했다.

  1. 설치 및 업데이트의 편의성:
    • Raspbian은 Debian 기반으로 개발되어 Debian의 패키지 관리 시스템을 사용함.
    • 시스템 업데이트 시 MariaDB 관련 패키지를 해당 패키지 관리 시스템으로 업데이트 가능.
  2. MariaDB의 안정성과 신뢰성:
    • MariaDB는 MySQL의 분기 버전으로, 오픈 소스 관계형 데이터베이스 관리 시스템.
    • MariaDB는 MySQL과 호환되면서 추가적인 기능과 성능 향상을 제공함.
  3. MySQL과의 호환성:
    • MariaDB는 MySQL과 호환되어 있어 기존 MySQL 사용자도 쉽게 전환 가능함.

MariaDB 설치 및 초기세팅 방법

1. apt-get 최신화

sudo apt-get update
sudo apt-get upgrade

2. mysql-server 다운로드 및 버전 확인

# 설치
sudo apt-get install mariadb-server mariadb-client

# 실행
sudo mysql
exit # 나가기

3. 기본 설정 세팅

  • Timezone 설정, 메모리 초과 사용시 데이터 후처리, 실행 포트 설정, 외부 접속 허용, 접속 암호 설정 등을 설정한다.
#----------------------------------------------------------#
# 기존 mysql -u 계정명 -p 로 기존 패스워드 방식으로 접속하고 싶은 경우
sudo mysql

#----------------------------------------------------------#
use mysql; // mysql 데이터 베이스 선택
select host, user, password from user; // 이용자 확인

# 사용자 추가 및 변경
CREATE user 사용자 id; // 예시 : CREATE 'userid'@'localhost' IDENTIFIED BY '비밀번호'
// 외부접근권한 부여할경우 : CREATE 'userid'@'%' identified by '비밀번호'
flush privileges; // MySQL에서 사용자 권한 변경 사항을 적용하기 위해 사용하는 명령어

# 사용자 삭제
DROP user '사용자 id'@'localhost';
flush privileges;

# 사용자에게 데이터베이스 권한 부여
GRANT ALL privileges ON DB명.* TO 계정아이디@localhost IDENTIFIED BY '비밀번호';
# 사용자에게 모든 데이터베이스 권한 부여
GRANT ALL privileges ON *.* TO 계정아이디@localhost IDENTIFIED BY '비밀번호' with grant option;

# 확인
SHOW GRANTS FOR 계정명@localhost;
#----------------------------------------------------------#
# 기본 설정 세팅
sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf

# 외부접속 허용
# ->    기본 실행 환경은 localhost(127.0.0.1)로 되어있다.
# ->    만약, 모든 외부접속에 대한 허용을 하고 싶다면, 0.0.0.0 으로 변경하면 된다.
bind-address 0.0.0.0

# 프로세스 포트
# ->    port 부분은 초기에 주석처리가 되어 있는데, 디폴트 값으로 3306 포트에서 동작한다. 
# ->    만약, 3306가 아닌 다른 포트를 설정하고 싶다면 주석을 해제하고 포트번호를 입력하면된다.
port 1234
#----------------------------------------------------------#

참고

profile
순간은 기록하고 반복은 단순화하자 🚀

0개의 댓글