| 데이터베이스의 순위
- 출처 : https://db-engines.com/en/ranking
- 2022년을 기준으로 데이터베이스의 순위는 아래와 같다
* 아래 [바로가기]를 선택 시, 해당 DBMS 사용 메뉴얼로 이동
- 예전에 오라클을 설치하는 것을 포스팅한 적이 있었는데 이번에는 MariaDB를 설치하는 법을 작성해보려한다.
1 | Oracle | RDMBS | 오라클사 | 바로가기 |
2 | MySQL | RDMBS | 오라클사 | 바로가기 |
3 | Microsoft SQL Server | RDMBS | Microsoft | 바로가기 |
4 | PostgreSQL | RDMBS | PostgreSQL단체 | 바로가기 |
5 | MongoDB | NoSQL계열 | MongoDB, Inc | 바로가기 |
| MariaDB 설치하기
1. Windows 환경
(1) 다운로드 사이트로 이동 [바로가기]
- 컴퓨터 OS환경에 맞춰서 설치하면 된다. (Package Type은 Zip으로 하는 것이 차후 세부설정을 하기 편하다)
(2) 다운되면 압축을 푼다.
(3) 관리자 권한 CMD에서 압축을 푼 경로로 이동 후 설치파일을 실행한다.
** 관리자 권한으로 열어주는 이유 : 보안 이슈로 서비스 등록을 처음할 때는 관리자 권한이 있어야만 가능
** 사용자용 CMD 관련 팁 : 파일탐색기 경로창에 "cmd" 입력 후 엔터를 치면 사용자용 cmd가 알아서 뜬다.
cd /* 압축 푼 폴더 경로 */
cd /bin
** 설치파일을 실행하기 전에, 명령어 옵션에 대한 정보를 --help로 확인하면 좋다.
mariadb-install-db.exe --help // 설치파일에 관한 정보 확인
mysql_install_db.exe Ver 1.00 for Windows
Copyright (C) 2010-2011 Monty Program Ab & Vladislav Vaintroub
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Usage: mysql_install_db.exe [OPTIONS]
OPTIONS:
-?, --help Display this help message and exit.
-d, --datadir=name Data directory of the new database
-S, --service=name Name of the Windows service
-p, --password=name Root password
-P, --port=# mysql port
-W, --socket=name named pipe name (if missing, it will be set the same as
service)
-D, --default-user Create default user
-R, --allow-remote-root-access
Allows remote access from network for user root
-N, --skip-networking
Do not use TCP connections, use pipe instead
-i, --innodb-page-size=#
Page size for innodb
-s, --silent Print less information
-o, --verbose-bootstrap
Include mysqld bootstrap output
-l, --large-pages Use large pages
-c, --config=name my.ini config template file
> 이 중에서 서비스명, Root password를 지정하는 옵션을 뽑아 명령어를 쓴다.
mariadb-install-db.exe -S 서비스명 -p 비밀번호 // 오류가 뜬다면 관리자권한CMD인지 확인하자
- [작업관리자] - [서비스]로 들어가면 서비스가 잘 등록된 걸 볼 수 있다.
(5) 실행하기
A. 서비스 직접 실행
sc start MariaDB
B. mysql.exe로 실행
- MariaDB 압축파일을 풀었던 경로의 bin폴더로 가서 mysql.exe 명령어 option을 확인한다.
mysql.exe --help
>> 엄청나게 옵션이 많은데 다른 건 필요없고 아래 두가지만 확인하면 된다.
-u, --user=name User for login if not current user.
-p, --password[=name]
Password to use when connecting to server. If password is
not given it's asked from the tty.
- 여기서 user는 root로 지정하고, pwd는 처음 설치할 때 지정한 root password를 넣어준다
(root는 서비스의 최상위 권한자이다.)
mysql.exe -u root -p
지정한RootPassword 입력
- 실행이 잘 되었는지 아래 코드를 통해 확인해본다.
select version(); - 버전명 확인
show databases; - 현재 계정에서 확인할 수 있는 등록된 DB들
use mysql; - 사용
show tables; - 테이블 목록 확인
select Host, User, Password from user; - 호스트(로컬or외부), 계정, 비밀번호 확인
2. MacOS 환경
(1) 패키지 매니저 "홈브루"를 설치한다.
- 맥의 터미널은 iterm2를 다운받아 터미널로 사용할 수 있다.(UI면에서 더 편리하다)
- 홈브루 설치 메뉴얼 : https://brew.sh/index_ko
: 아래 명령어를 작성해서 홈브루를 설치한다
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
(2) 홈브루를 통해 MariaDB 버전을 확인한다.
brew search mariadb //MariaDB 각 버전 검색
brew info mariadb //default version인 mariadb에 대한 정보 확인
(3) 홈브루를 통해 선택한 버전의 MariaDB를 설치한다
brew install mariadb
- 설치 후에, 다시 아래 명령어를 입력하면 설치된 버전이 체크된 걸 볼 수 있다
brew search mariadb
- 설치 후에는 설치된 경로를 알려주는데, 해당 경로를 꼭 따로 입력해주는 것이 좋다.
(4) 터미널에서 (3)에서 확인한 경로로 이동
- 현재 경로를 확인하고 설치 경로로 이동한다.
pwd // 현재 경로확인
cd mariadb경로
- bin 폴더에서 ls를 통해 파일 목록을 확인하면,
mariadb_secure_installation(주황색), mysql_secure_installation(보라색) 두가지가 있는걸 볼 수 있는데,
--> 주황색 표시된 mariadb_secure_installation이 실질적인 설치 파일이고,
--> 보라색 표시된 mysql_secure_installation은 그걸 참조한다.
*** 우리는 이 중에서, mariadb_secure_installation를 설치하면 된다.
(5) 관리자 권한으로 설치파일 실행
// su : 관리자 권한 실행
// ** mac이나 linux는 꼭 앞에 ./ 현재 경로 입력해야 실행된다
su ./mariadb_secure_installation
- Root password 및 기타 설정을 설정한다
- 모두 설치한 후 잘 설치되었는지 확인하려면 아래를 입력하면 된다.
brew services info mariadb
(6) 서비스 실행하기
brew services start mariadb
//brew services restart mariadb
//bres services stop mariadb
3. Linux 환경
(1) 패키지 매니저를 설치한다.
- 우분투의 경우 apt, CentOS의 경우 yum을 통해 설치한다.
(2) MariaDB 버전 확인 후 설치파일 다운로드
- 패키지 매니저를 통해 MariaDB 버전을 확인하거나
apt search mariadb-server
- MariaDB 사이트에서 버전 확인 후 가이드에 따라 설치파일 다운로드[바로가기]
(4) MariaDB 설치파일 실행
sudo -i //관리자 권한 실행
find / -name mariadb-secure* //파일 경로 확인
apt mariadb-secure-installation //설치파일 실행
(5) 서비스 실행하기
service mariadb start
| 원격으로 외부 DB서버에 접속하는 방법(윈도우 기준)
- 들어가기 전에
- 일반적으로 Root는 원격으로 접속할 수 없도록 되어 있다. - Shell을 통해 원격접속을 할 때에는 A. SSH를 통해서 DB컴퓨터에 접속 후 DBMS에 접근하거나 B. DB컴퓨터에서 외부IP의 포트 및 계정 권한을 허용한 경우 접근할 수 있다. - Shell이 아닌 IDE(IntelliJ, Eclipse등)에서 접속을 할 경우에도, 마찬가지로 DB컴퓨터에서 나의 접근을 허용해주어야만 접근이 가능하다. - 원격 접속하는 걸 연습할 때는 xShell을 쓰면 유용하다 (xShell 다운 바로가기) 현장에서는 PuTTY를 더 자주 쓴다. |
사용자를 포함해서 개발자도 웹 서버를 통해 DB와 소통을 한다.
다만, 때에 따라 개발자가 DB서버에 직접적으로 접근을 해야하는 경우도 있는데
보안상 DB 서버는 따로 두는 경우가 많아서 이런 경우 DB 서버에 원격으로 접속하는 것이 필요하다.
원격으로 서버에 접속하기 위해서는 기본적으로 아래와 같은 정보들이 필요하다.
[ 원격으로 서버에 접속하기 위한 정보 ]
구분 | 설명 | 예시 |
주소(IP) | 특정 시스템의 주소 | - 내컴퓨터(로컬) : 127.0.01, localhost - 외부 : 168.xxx.xx.x |
포트(PORT) | 그 시스템 내 프로그램 위치 | - 3306(MariaDB의 디폴트 포트) - 22(웹) ... |
계정 | 서비스 계정 | |
비밀번호 | 그 계정의 비밀번호 | |
인스턴스 |
A. SSH를 통해 내 컴퓨터(윈도우)에서 DB컴퓨터(Linux)에 접속하기
(1) xShell을 설치하고 실행한다.
(2) IP주소를 확인하여 SSH를 통해 접속하기 (접근 시 비밀번호 작성)
ssh satcop@접속할ip주소
(3) 해당 ip 내에서 DBMS 접속하기
mysql -u root -p
B. DB컴퓨터(Linux)가 내 컴퓨터(윈도우) IP의 포트 및 계정 권한 허용
[ DB컴퓨터(Linux)에서 아래와 같이 작업이 필요하다] 1. DBMS 설정(my.cnf)에서 외부 IP도 DBMS 포트에 접속할 수 있게 설정하기 2. DBMS 계정을 만들어 외부IP와 연결하기 |
- 윈도우 cmd에서 아래와 같은 코드를 작성하여 바로 접근을 하려 하면 "can't connect to server on 'ip주소'"가 나타난다.
mysql -h 외부ip주소 -u root -p
- 이유는 DB를 담고 있는 PC에서 MariaDB 포트를 열어두지 않았기 때문이다.
- DB를 담고 있는 PC(linux)에서 아래의 명령어를 통해 현재 활성화된 포트를 확인해보면
netstat -anpt
- 아래와 같이 MariaDB 포트가 로컬컴퓨터에서만 열려 있는 걸 볼 수 있다.
* 로컬 컴퓨터 주소 : 127.0.0.1
* MariaDB 디폴트 포트 : 3306
Proto (생략) Local Address (생략)
tcp 127.0.0.1:3306
- DB를 담고 있는 PC(linux)의 MariaDB 설정파일(my.cnf)에서 외부ip 접근을 허가한다.
sudo -i //관리자권한 실행
find / -name my.cnf //my.cnf (설정파일) 경로 확인
cd /etc/mysql //해당 경로로 이동
vi my.cnf //my.cnf 실행
[mysqld] //설정파일에서
bind-address=0.0.0.0 //모든 외부ip접근 허가(또는 특정짓기)
service mariadb restart //MariaDB 재실행
- 허가를 하면 아래와 같이 모든 ip에서 3306포트가 열린 걸 볼 수 있다.
Proto (생략) Local Address (생략)
tcp 0.0.0.0:3306
- 이렇게만 하면 접속이 가능해질까? 그렇지 않다.
아래를 보면 알 수 있듯이 root 계정은 localhost에서만 사용가능하기 때문에 새롭게 계정을 만들어 주어야 한다.
use mysql
select Host, User from user;
+-----------------+-------------+
| Host | User |
+-----------------+-------------+
| 127.0.0.1 | root |
| ::1 | root |
| desktop-ivvs8i6 | root |
| localhost | mariadb.sys |
| localhost | root |
+-----------------+-------------+
- 새로운 계정을 만들어 주면서, 모든 ip에서 접속가능하게 설정하기
create user 'root'@'%' indentified by 비밀번호; // '%' : 어떤 호스트에서든 접속 가능
grant all privileges on root.* to 'root'@'%' indentified by 비밀번호; // 권한설정
flush privileges;
| 사용된 CLI 명령어 정리
windows CLI 명령어
cd | 경로 이동 | cd ~ : desktop 폴더로 이동 cd .. : 상위 경로 cd . : 현재 경로 [tab] : 일부 작성 후 [tab]을 누르면 유사파일명 자동입력 |
dir | 현재 경로의 폴더(디렉토리)와 파일 목록을 보여줌 | /w : 목록이 3개씩 표시 |
cls | (=clear) 화면을 지워준다. | |
--help | 명령어 + --help를 쓰면 명령어 실행 전에 설명을 띄워준다 |
|
sc | sc start 서비스명 : 등록된 서비스 시작 sc restart 서비스명 : 등록된 서비스 다시시작 sc stop 서비스명 : 등록된 서비스 멈춤 |
관리자권한이 있어야만 가능 |
exit | CLI 종료 | |
ipconfig | 현재 ip 주소 반환 |
macOS CLI 명령어
cd | 경로 이동 | |
pwd | 현재 경로를 알려준다 | |
ls | 현재 경로의 폴더(디렉토리)와 파일 목록을 보여줌 | ls - al : 파일 목록을 상세하게 확인 |
su | (=sudo) 관리자 권한으로 파일 실행 | |
find / -name | 특정 파일의 경로를 찾아준다 | |
quit | CLI 종료 |
Linux CLI 명령어
pwd | 현재 경로를 알려준다 | |
ls | 현재 경로의 폴더(디렉토리)와 파일 목록을 보여줌 | ls - al : 파일 목록을 상세하게 확인 |
find | 특정 파일의 경로를 찾아준다 | |
sudo | 관리자 권한으로 파일 실행 | sudo i |
ifconfig | 현재 ip 주소 반환 | |
find / -name | 특정 파일의 경로를 찾아준다 | |
service | 서비스를 start/restart/stop | ex. service mariadb start |
[ 참고 및 출처 ]
부트캠프 강의를 듣고 정리한 내용입니다.
openSSH https://velog.io/@hyeseong-dev/%EB%A6%AC%EB%88%85%EC%8A%A4-ssh%EB%9E%80
'Language > SQL' 카테고리의 다른 글
테이블 - 데이터 자료형, DDL/툴을 통한 생성 및 삭제 (0) | 2022.08.15 |
---|---|
데이터베이스 - 데이터베이스 생성 및 권한 부여(DDL) (0) | 2022.08.11 |
파일시스템과 DBMS, RDMBS (0) | 2022.08.10 |
[DATABASE] PL/SQL 프로시져 (0) | 2022.04.27 |
[DATABASE] MVC 모델 구현 _ 성적 관리 프로그램 (0) | 2022.04.25 |