mysql -u root -p
#root 비밀번호 입력
-- 사용자 생성
CREATE USER 'iamwhatiam'@'%' IDENTIFIED BY 'abc1234';
-- 관리자 권한 부여
GRANT ALL PRIVILEGES ON *.* TO 'iamwhatiam'@'%' WITH GRANT OPTION;
-- 권한 테이블 다시 로드
FLUSH PRIVILEGES;
Synology NAS VMM에 Rocky Linux 8을 설치하고 Oracle19c, PostgreSQL 을 설치해 봤다. (현재 시점 Oracle19c 설치 과정은 아직 포스팅 하지 않았다.) MS-SQL은 Windows가 없어서 설치 못하더라도 범용적으로 사용되는 MariaDB까지는 설치해 놓고 사용해 보려고 한다.
내가 MySQL을 사용하지 않고 MariaDB를 사용하는 이유는 간단하다. 일단 간은 Source 기반인데 MySQL이 Oracle로 넘어가면서 상업적인 정책으로 변하는 것들을 보면서 내가 사용하는 수준의 MySQL은 MariaDB로 대체 된들 전혀 문제되지 않기 때문에 MariaDB를 사용하기 시작했다. DBA입장이 아니라 개발자 입장이라면 MariaDB 와 MySQL의 차이를 개발을 하면서 느낄 수 없을 것이기 때문이다.
일단 지금 설치하려고 하는 Linux의 정보를 확인해 보자.
uname -a
cat /etc/redhat-release
'uname -a' 명령어는 시스템 커널의 버전을 확인하는 방법이고 'cat /etc/redhat-release' 는 배포판 버전을 확인하는 방법이다. 나의 경우엔 Rocky Linux를 사용하기 때문에 'cat /etc/redhat-release' 로 확인할 수 있지만 Debian 계열의 Ubuntu 같은 경우는 'lsb_release -a' 로 확인할 수 있다.
1. Rocky Linux System Update
sudo su -
dnf upgrade -y --refresh
2. MariaDB 저장소 가져오기
dnf를 통해서 그냥 설치하게 되면 MariaDB 10.3.39 버전이 설치 되게 된다.
dnf list mariadb
dnf info mariadb-server
글을 쓰고 있는 현재 시점(2024년 7월) 기준으로 MariaDB의 최신 버전은 11.4.2 이다. (11.6 도 나왔지만 Preview 상태이니 정식 버전인 11.4.2를 최신이라고 하겠다.)
Package 관리 차원에서 Package Manager를 사용하는게 관리상 편할테니 MariaDB 저장소를 추가해서 dnf를 통해 설치 할 수 있는 최신 버전을 설치하도록 한다. 그러기 위해서는 MariaDB 저장소를 추가해야 한다. 먼저 yum을 통해서 설치 할 수 있는 MariaDB의 Version을 확인해 보자. http://mirror.mariadb.org/yum/
dnf 저장소에 최신버전의 MariaDB를 설치할 수 있게 하기 위해서 수동으로 추가해 준다.
vi /etc/yum.repos.d/MariaDB.repo
[MariaDB-11.4]
name=MariaDB 11.4 repo (build 46870)
baseurl=http://mirror.mariadb.org/yum/11.4.2/rockylinux8-amd64/
gpgcheck=0
module_hotfixes=1
dnf Package Manager에서 사용할 수 있는 Repository를 확인한다.
dnf repolist
dnf Package Manager를 통해서 MariaDB 11.4.2 를 설치한다.
dnf -y install MariaDB
3. MariaDB Service 설정
MariaDB 설치가 완료 되었으니 이제 서비스에 등록하여 시스템 구동시 자동적으로 구동되게 하자.
systemctl status mariadb
systemctl start mariadb
systemctl status mariadb
systemctl enable mariadb
4. MariaDB 보안 설정
- 루트 암호 설정
- 익명 사용자 제거
- 원격 접속 허용
- 테스트 데이터베이스 제거
MariaDB를 처음 설치한 후 기본적인 보안 설정을 완료하기 위해서 기본 보안 설정을 진행한다.
mariadb-secure-installation
- 현재 root 사용자의 암호를 입력하세요 (암호가 없는 경우 Enter):
- unix_socket 인증으로 전환하시겠습니까? [Y/n] n
- root 암호를 변경하시겠습니까? [Y/n] y
- 익명 사용자를 제거하시겠습니까? [Y/n] y
- 원격에서 root 로그인을 허용하지 않으시겠습니까? [Y/n] y
- 권한 테이블을 지금 다시로드하시겠습니까? [Y/n] y
5. MariaDB에 접속하기
설치 및 설정이 모두 완료되었으니 정상적으로 접속 되는지 확인해본다.
root로는 외부 접속이 차단되었으니 새로운 사용자 계정을 생성한다. (비밀번호는 abc1234 로 했다.)
-- MariaDB에 root로 접속
mysql -u root -p
-- 사용자 생성
CREATE USER 'iamwhatiam'@'%' IDENTIFIED BY 'abc1234';
-- 관리자 권한 부여
GRANT ALL PRIVILEGES ON *.* TO 'iamwhatiam'@'%' WITH GRANT OPTION;
-- 권한 테이블 다시 로드
FLUSH PRIVILEGES;
MariaDB가 외부접속이 가능하도록 설정한다. dnf를 통해서 설치한 MariaDB의 경우 'server.cnf' 파일이 '/etc/my.cnf.d' 경로에 있다. 환경마다 다소 다를 수 있지만 지금은 dnf 를 통해서 설치 했기 때문에 '/etc/my.cnf.d' 경로에서 'server.cnf'를 찾으면 된다.
server.cnf 파일을 vi 로 열어서 bind-address=0.0.0.0 으로 되어 있는 설정의 주석을 없애고 저장한다.
Linux 자체의 방화벽에 3306 포트를 오픈 후 MariaDB를 재기동 한다.
sudo su -
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
systemctl restart mariadb
'Blog > DB' 카테고리의 다른 글
[PostgreSQL] 우편번호 Data를 사용하기 위한 Partition Table 만들기 (0) | 2024.07.15 |
---|---|
Rocky Linux 에 PostgreSQL 설치 및 외부연결 설정 (0) | 2024.07.02 |
ORACLE에서 Long Type의 Column에 대한 Like 검색 Ver.2 (0) | 2023.12.08 |
SqlDeveloper에서 XMLTYPE 값 보기 (0) | 2019.01.08 |
ORACLE에서 LONG TYPE의 COLUMN에 LIKE 조건을 걸기 위해서.. LONG TO CHAR (0) | 2019.01.08 |