4.1 MariaDB 설치 및 환경설정(Windows)
1) 아래와 같이 설정하고 다운로드
2) C: 드라이브에 dev라는 폴더를 만들고 압축 파일을 가져온다.
- 압축 풀어준다.
Note) cmd 명령어
- cd(change directory): 폴더 경로를 이동한다.
- ".": 현재 경로
- "..": 상위 경로
- '\': 경로를 구분 짓는다.
- dir: 현재 경로의 폴더와 파일 목록을 보여준다.
- Tab: 경로를 입력할 때, 입력한 문자에 대한 유사한 폴더를 입력해준다.
- cls: 지금까지 실행한 명령어를 안 보이도록 지운다.
- dir /w: 기다란 목록을 세 줄로 보여준다.
- sc start MariaDB: 서비스명이 MariaDB인 서비스를 시작한다.
- sc stop MariaDB: 서비스명이 MariaDB인 서비스를 종료한다.
- sc query MariaDB: 서비스명이 MariaDB의 상태를 볼 수 있다.
- exit: 명령 프롬프트 창을 종료한다.
3) cmd창을 연다.
- 아래처럼 C 폴더로 이동한다.
- cd m 까지 누르고 Tab키를 누르면 자동 완성된다.
- maribd-install-db.exe --help
-> 서비스로 등록돼야 윈도우즈에 로그인 하지 않고도 실행 가능
Note) OPTIONS
- --service=name: 서비스(로그인 하지 않고도 자동 실행, ex. 블루투스) 네임 등록, 데이터베이스 서버도 서비스 등록을 안해도 된다.
- --password=name: Root에 password를 지정해준다.
- 관리자 권한으로 실행하지 않으면 아래와 같이 오류가 난다.
- cmd를 작업 표시줄에 고정시킨 다음, Shift 키를 누른 상태로 오른쪽 마우스를 누르면 관리자 권한으로 실행할 수 있다.
- 그러면 아래와 같이 cmd 창에 "관리자"라는 단어가 추가된다.
=======================================================================
< -> cd mariadb-install -db.exe -S MariaDB -p zerobase e>
- 서비스를 들어가면 MariaDB를 찾을 수 있다.
-> 아래과 같이 서비스를 시작하거나 종료할 수 있다.
-> cmd 창에서도 서비스를 시작하거나 종료할 수 있다. 명령어(sc)
- 아래와 같이 입력하면 서비스가 시작된다.
-> bin 폴더 안에서도 net start MariaDB =>마리아 디비 서비스가 시작된다.
== 오류 == (서비스 시작했는데 새로고침을 해도 아래처럼 시작이 안됐다고 나온다.)
- sc stop MariaDB 입력하면 서비스가 중지된다.
- bin 파일 중 "mysql.exe"는 데이터 베이스에 접속하기위한 클라이언트
-> 관리자 권한 없이 실행한다.
- bin폴더에서 주소창에 "cmd"를 입력하고 엔터 누르면
-> bin위치로 cmd 창이 바로 열린다.
2.2-7 MariaDB 설치 및 환경 설정 (Linux - ubuntu)
- Linux는 패키지 매니저를 통해 설치한다.
- ubuntu의 경우 apt, CentOS의 경우 yum(염)을 통해 설치한다.
- 대부분 서버 환경이다.
1) 터미널을 연다.
- sudo apt --help를 입력하면 자주 사용되는 명령어 목록이 나온다.
- sudo apt search openssh-server 입력
-> 앞으로 openssh-server 를 설치해서 원격 접속할 수 있도록 실행 환경을 만들 수 있다.
2) sudo apt install openssh-server 입력하면 아래와 같이 "openssh-server " 설치가 진행된다. (sudo: 관리자 권한 실행, )
- 설치가 완료되면 원격에서 ~할 수 있다.
- 원격 서버에 접속하기 위해서는 IP, 포트, 계정, 패스워드, 인스턴스 다섯 가지를 알아햐 하는 경우도 있고 인스턴스를 빼고 네 가지만 알아도 되는 경우가 있다.
-> Windows: ipconfig를 이용해서 IP를 확인할 수 있다.
-> Linux: ifconfig를 통해 확인 가능
3) 아래와 같이 sudo apt install net-tools를 입력한다.
- 그러면 IP 주소를 확인할 수 있다.
- IP주소를 메모장에 저장해둔다. 172.31.46.95
4) apt search mariadb-server 입력
- 10.3도 문제 없지만 10.6을 설치해보자.
- cat /etc/*release* 를 입력하면 아래와 같이 ubuntu 20.04가 설치된 걸 볼 수 있다.
- 아래와 같이 설정한다.
- 아래 세 개를 한 줄씩 실행한다.
-> 그 다음 sudo apt update를 통해 목록을 업데이트한다.
- 목록을 업데이트 한 다음에, apt search mariadb-server 로 확인해보면
-> 10.6이 올라온 걸 확인할 수 있다.
-> 이후에 10.6을 설치하자.
2.2-8
1) sudo get install mariadb-server 입력, Y입력하면 설치가 시작된다.
2) apt show mariadb-server 를 통해 확인한다.
3) find / -name mariadb-secure* 로 검색해보면 ( mariadb-secure로 시작하는 모든 파일을 찾는다.)
- 아래와 같이 권한 때문에 찾을 수 없는 것으로 보인다.
- 권한을 바꿔준다.
- sudo -i 입력하면 root로 권한을 바꿀 수 있다.
-> find: Linux, Mac에서 파일을 찾는 명령어이다.
- sudo -i로 권한을 변경하고 다시 찾아보면, 아래와 같이 나온다.
-> 이를 실행해서 초기화 해보자.
- mariadb-secure-installation 입력한다.
-> 아직 패스워드가 지정되어 있지 않으므로 엔터 입력
-> n, Y 차례대로 입력한다.
-> 그 다음 비밀번호를 설정한다. 입력해도 커서가 깜빡이지 않고 문자가 보이지 않길래 오류인 줄 알았으나 보안 때문에 안 보이도록 되어 있으니 그냥 입력 후 엔터 누르면 된다.
- Remove anonymous users? Y
- Disallow root login remotely? n
- Remove test database and access to it? n
- Reload priviledge tables now? Y
- 지금까지 원격으로 우분투에 들어간 거라 보면 된다.
- 우분투에서 DB에 접속하는 것은 local이 될 것이다.?
- 서비스가 올라와 있는지 확인해보자.
-> service mariadb restart 입력
-> service mariadb stop:
-> service mariadb start:
- ps -ef | grep mariadb 입력해서 현재 MariaDB가 잘 올라갔는지 확인 가능한다.
- netstat -anpt 입력
-> 포트(?)를 이용해서 확인할 수도 있다.
- exit 를 입력하면 root계정을 빠져나올 수 있다.
(접속이란? 내 ubuntu계정에서 내 ubuntu 계정 서버에 있는 데이터베이스에 접속하는 것이다.)
- mysql -u root -p 입력
-> ubuntu에 들어가서 ubuntu에서 mysql의 데이터베이스에 접속한 것이다. (mysql.exe는 프로그램에 접속하기 위한 프로그램이다.)
- select version(); 입력하면 버전 확인 가능하다.
- show databases; => 데이터베이스 목록을 확인 가능
-> 네 개의 데이터 베이스 확인 가능
- use mysql; => mysql라는 데이터 베이스 사용하겠다.
- show tables; => 현재 테이블 목록 볼 수 있다.
- select Host, User, Password from user; => 현재 데이터베이스 계정의 user에 대한 정보를 확인 가능
-?? root만 접속 가능하다?
- 여기 까지는 ubuntu 서버이다.
- 한번 더 exit 해주면 창이 사라지고 내 컴퓨터에서 로그아웃된다.
4.2 HeidiSQL 설치
- https://www.heidisql.com/download.php
-> 64bit 다운로드한다.
- 다운 받은 파일을 dev폴더로 가져온다.
- Heidi.exe 파일을 실행한다.
-> 다음과 같이 입력한다.
-> 내 컴퓨터의 아이피에 계정과 비밀번호를 통해 접속한다는 뜻이다.
- 초기화면이 나온다.
- 데이터베이스를 만든다.
=======================================오류 발생 =======================================
- 데이터베이스에서 root가 아닌 사용자는 데이터베이스에 접근을 허용하지 않는다는 오류가 발생한다.
=======================오류가 나서 다시 43306 포트로 시도한다.=======================
- maria 폴더의 bin 폴더까지 이동한다.
-> mariadb-install-db.exe --help를 입력한다. 마리아 디비에 옵션을 어떻게 주는지 볼 수 있다.
-> -S: 서비스 네임
-> -p: root password
-> -P: 포트, 마리아db와 mySQL은 동일한 3306 포트를 쓰지만 여러 데이터베이스를 쓸 수 있도록 새로운 포트 43306을 등록한다.
- mariadb-install-db.exe --service=MariaDB --password=1234 --port=43306
-> 그런데 이번에는 아까와는 다른 오류가 난다.
============MariaDB 시스템 오류(1067)가 나니까 어디서 나는지 찾아본다. =====================
- netstat -aop TCP | find ":3306"을 입력하면 3306 포트를 사용 중인 PID 번호(7272)가 나온다.
- 위와 일치하는 PID 번호를 찾아서 작업 종료시킨다.
- net start MariaDB 를 다시 입력하면 다음과 같이 아까와 같은 에러가 난다.
삽질한 결론
- 내 로컬호스트로는 예전에도 그랬듯이 데이터베이스를 만들고 접근하는데 문제가 있다.
- AWS에서 만든 IP, 로컬 IP, 127.0.0.1 , 네이버에 검색해서 나오는 내 IP .. 네 가지 모두 접속이 안 된다.
- 이유를 찾으려고 여러 방법을 시도해봤지만, 혼자서는 찾을 수 없는 이유로 보인다.
- MariaDB를 가장 처음 시작했을 때, 초기 설정에서 무언가 실수를 한 것 같은데 그 실수를 찾기가 어려워 접속 가능한 다른 사람의 IP주소를 빌려 이용하기로했다.
=========================== 다른 분의 IP주소를 빌려서 다시 로그인하고 데이터베이스 만들기 시도===========================
- use mysql;
- show databases;
- 종료는 exit 또는 quit를 이용한다.
- heidi 프로그램에 접속한다.
- create / drop database 를 이용해서 데이데이터베이스를 만들거나 삭제 가능하다.터베이스를 만들거나 삭제 가능하다.
<hide/>
CREATE DATABASE test_db;
SHOW TABLES;
DROP DATABASE test_db;
- mariadb 폴더 => data 폴더 안의 my.ini 파일을 연다.
- mariadb 윈도우즈 인코딩 설정을한다. my.ini 파일에 다음과 같이 내용을 추가한다.
<hide/>
[mysqld]
datadir=C:/dev/mariadb-10.6.8/data
init_connect="SET collation_connection = utf8_general_ci"
init_connect="SET NAMES utf8"
character-set-server = utf8
collation-server = utf8_general_ci
[client]
plugin-dir=C:\dev\mariadb-10.6.8/lib/plugin
default-character-set = utf8
[mysqldump]
default-character-set = utf8
[mysql]
default-character-set = utf8
- 다시 명령 프롬프트로 돌아와서 서버를 켠다. net start MariaDB
- heidi에서 새로운 데이터베이스를 만든다. 아까와는 다르게 조합 부분에 여러 개 중에 선택이 가능하다.
- 다음과 같이 사용자 관리자를 추가한다. 사용자 관리자 창을 켜고 아래 창에서 객체 추가를 누른다.
-> minicampus에 전체 권한을 주거나 할 수 있다.
- 접속 테스트를 해보자.
- 그럼 이제 minicampus라는 데이터 베이스를 가지고 프로젝트를 실행할 수 있는 환경이 세팅 완료된다.
'Spring Projcect > 학습 관리 시스템 & 백오피스 구축' 카테고리의 다른 글
Chapter 07. 스프링 부트 프로젝트 - 로그인/로그아웃 (0) | 2022.08.18 |
---|---|
Chapter 05. 스프링부트 기반 웹 프로젝트 구성 (0) | 2022.08.09 |
Chapter 03. 데이터 구조 설계 (0) | 2022.08.09 |
Chapter 02. 학습 관리 시스템 사이트 분석 (0) | 2022.08.08 |
Chapter 01. Git (0) | 2022.08.08 |