IT/Database

MySQL Database 구축하기

iamhyeon 2024. 11. 18. 00:37

< Microsoft Visual C++ 재배포 가능 도구 설치 >

 

- MySQL은 Visual C++ 재배포 가능 도구에 의존한다

https://support.microsoft.com/ko-kr/help/2977003/the-latest-supported-visual-c-downloads

통합버전 내려받아 설치

 

- Visual C++ 재배포 가능 패키지는 Microsoft C 및 C++(MSVC) 런타임 라이브러리를 설치합니다. 

- Microsoft C 및 C++ 도구를 사용하여 빌드된 많은 애플리케이션에 이러한 라이브러리가 필요합니다.

- 앱이 해당 라이브러리를 사용하는 경우 앱을 설치하기 전에 Microsoft Visual C++ 재배포 가능 패키지를 대상 시스템에 설치해야 합니다.

- 재배포 가능 패키지 아키텍처는 앱의 대상 아키텍처와 일치해야 합니다.

- 재배포 가능 패키지 버전은 최소한 앱을 빌드하는 데 사용된 MSVC 빌드 도구 집합과 같은 최신 버전이어야 합니다.

 

- MSVC

- Microsoft Visual C++의 약자로, 마이크로소프트에서 제공하는 C 및 C++ 프로그래밍 언어용 개발 환경

- MSVC는 주로 Windows 플랫폼에서 애플리케이션을 개발하는 데 사용되며,

- 다양한 기능을 제공하여 코드 작성, 디버깅, 성능 분석 등을 쉽게 할 수 있도록 돕는다

- Visual Studio IDE의 일부로 포함되어 있어, 강력한 코드 편집기와 통합된 디버거, 그리고 여러 개발 도구들을 제공한다
- MSVC는 특히 Windows API와 DirectX와 같은 마이크로소프트 기술과 잘 통합되어 있어, 게임 개발이나 데스크탑 애플리케이션 개발에 많이 사용된다


 

< MySQL 다운 >

 

https://dev.mysql.com/downloads/mysql/

- Install 버전의 경우 윈도우 시스템 상태에 따라 설치에 실패하는 경우가 많다

=> 압축패키지(ZIP Archive)를 통한 수동 설치는 설치에 실패하는 경우가 거의 없다

 

- 로그인 과정 생략하고 파일 바로 다운

 

- MySQL

- MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)으로, 다양한 플랫폼에서 널리 사용된다

- 관계형 데이터베이스: MySQL은 데이터를 테이블 형식으로 저장하며, 테이블 간의 관계를 정의할 수 있다
- SQL 지원: MySQL은 표준 SQL(Structured Query Language)을 사용하여 데이터를 조회하고 조작한다
- 오픈 소스: MySQL은 오픈 소스 소프트웨어로, 무료로 사용할 수 있으며, 소스 코드를 수정하거나 배포할 수 있다
- 성능: MySQL은 빠른 데이터 처리 속도를 자랑하며, 대량의 데이터베이스를 효율적으로 처리할 수 있다
- 안전성: 트랜잭션 지원, 데이터 복구 기능, 사용자 권한 관리 등으로 데이터의 안전성을 높이고 있다
- 확장성: 대규모 애플리케이션에서 작은 애플리케이션까지 다양한 규모의 데이터베이스를 지원한다
- 커뮤니티와 지원: 활발한 사용자 커뮤니티와 다양한 자료가 있어 문제 해결이 용이하다
- 다양한 플랫폼 지원: Windows, Linux, macOS 등 다양한 운영 체제에서 사용할 수 있다
- MySQL은 웹 애플리케이션, 데이터 웨어하우스, 전자상거래 플랫폼 등에서 많이 사용되며, PHP와 함께 LAMP 스택의 주요 구성 요소로 알려져 있다

 

- RDBMS

- RDBMS는 관계형 데이터베이스 관리 시스템(Relational Database Management System)

- 데이터를 표 형식으로 저장하고 관리하는 데이터베이스 시스템

- 관계형 데이터 모델: 데이터가 테이블(또는 릴레이션)로 구성되어 있으며, 각 테이블은 행(row)과 열(column)로 이루어져 있습니다. 각 행은 개별 레코드를 나타내고, 각 열은 특정 속성을 나타낸다

- SQL 사용: RDBMS는 구조적 쿼리 언어(Structured Query Language, SQL)를 사용하여 데이터베이스를 쿼리하고 조작한다. SQL은 데이터 검색, 삽입, 업데이트 및 삭제와 같은 작업을 수행하는 데 사용된다
- 데이터 무결성: RDBMS는 데이터의 일관성과 무결성을 유지하기 위해 기본 키, 외래 키, 제약 조건 등을 지원한다. 이를 통해 잘못된 데이터 입력을 방지하고 데이터 간의 관계를 유지한다
- 트랜잭션 지원: RDBMS는 ACID(Atomicity, Consistency, Isolation, Durability) 속성을 지원하여 데이터의 안전한 처리와 복구를 보장한다. 이는 데이터베이스가 예기치 않은 오류나 시스템 실패에 대해 신뢰성을 유지할 수 있도록 돕는다
- 다중 사용자 지원: RDBMS는 여러 사용자가 동시에 데이터베이스에 접근하고 작업할 수 있도록 지원한다. 이를 통해 여러 애플리케이션과 사용자 간의 데이터 공유가 가능하다
- 확장성: RDBMS는 소규모 데이터베이스부터 대규모 데이터베이스까지 다양한 규모의 데이터 처리에 적합하다
- 주요 RDBMS 예시로는 MySQL, PostgreSQL, Oracle Database, Microsoft SQL Server 등이 있다. RDBMS는 웹 애플리케이션, 비즈니스 애플리케이션, 데이터 웨어하우스 등 다양한 분야에서 널리 사용된다

 

- ACID

- 데이터베이스 시스템에서 트랜잭션의 신뢰성을 보장하기 위한 네 가지 주요 속성을 의미

- Atomicity (원자성):
- 트랜잭션은 완전하게 수행되거나 전혀 수행되지 않아야 한다. 즉, 트랜잭션 내의 모든 작업이 성공적으로 완료되어야 하며, 중간에 오류가 발생하면 이전 상태로 롤백되어야 한다. 예를 들어, 은행 계좌 간의 송금 트랜잭션에서 돈이 빠져나가는 작업과 들어가는 작업이 모두 성공해야 한다
- Consistency (일관성):
- 트랜잭션이 수행되기 전과 후에 데이터베이스의 상태가 일관되어야 한다. 즉, 모든 트랜잭션이 완료된 후에는 데이터베이스가 정의된 규칙과 제약 조건을 유지해야 한다. 예를 들어, 계좌의 잔고가 음수가 되지 않도록 하는 제약 조건이 있다면, 트랜잭션이 성공적으로 완료된 후에도 이 조건이 충족되어야 한다
- Isolation (격리성):
- 동시에 실행되는 트랜잭션은 서로에게 영향을 미치지 않아야 한다. 각 트랜잭션은 독립적으로 수행되어야 하며, 다른 트랜잭션이 완료되기 전까지는 결과가 외부에 노출되지 않아야 한다. 이를 통해 동시에 여러 사용자가 데이터베이스에 접근할 때 일어날 수 있는 충돌이나 불일치를 방지한다
- Durability (지속성):
- 트랜잭션이 성공적으로 완료된 경우, 그 결과는 영구적으로 저장되어야 하며, 시스템 장애나 오류가 발생하더라도 손실되지 않아야 한다. 예를 들어, 데이터가 데이터베이스에 커밋된 후에는 전원이 꺼지거나 시스템이 재시작되어도 해당 데이터는 유지되어야 한다.


< MySQL 압축해제 / data 폴더, 설정파일 생성 >

 

1) 적절한 위치에 압축풀기 ( 폴더 경로에 한글 X )

2) data 폴더 생성

3) text 파일 생성  =>  이름변경 (my.ini)

4) my.ini 안에 설정항목 입력

[mysqld]
basedir=C:\mysql-8.0.20-winx64
datadir=C:\mysql-8.0.20-winx64\data
port=3306


 

< MySQL 환경변수 설정 >

 

▷ MYSQL_HOME  새로만들기  :  C:\mysql-8.0.20-winx64

▷  Path 편집-추가  :  C:\mysql-8.0.20-winx64\bin


 

< MySQL 초기화 명령 수행 >

 

▷ 명령프롬프트 관리자 권한으로 실행 (Ctrl+Shift+Enter)

 

▷ 초기화 명령어 입력

 

C:\Windows\system32> mysqld --initialize

 

=> 문제 없으면 data 폴더 안에 초기화 결과물이 생성된다


< 윈도우 서비스 등록 및 실행 >

 

▷ 명령프롬프트 관리자 권한으로 실행한 상태에서 MySQL을 윈도우 서비스로 등록하기 위한 명령어 입력

mysqld --install

 

▷ 등록된 윈도우 서비스 구동하기 위한 명령어 입력

net start MySQL

 

 

 

버전이 안맞는 등의 이유로 제거하고 다시 설치해야 하는 경우

mysqld --remove

< 데이터베이스 관리 계정의 임시 비밀번호 확인 >

 

▷ MySQL 설치 디렉토리 내의 data 폴더 안에 컴퓨터이름.err 형식의 파일을 메모장으로 확인


< MySQL 접속 >

 

▷ 명령 프롬프트 일반 사용자 권한으로 실행,  mysql 접속 명령 수행

mysql -uroot -p

-u  :  user이름을 입력하기 위한 옵션  /  여기서 user 이름은 root 이다

-p  :  password를 입력하기 위한 옵션  /  직접 입력하지 않고, 별도의 입력 항목 사용


< 관리자 계정 (root) 의 비밀번호 변경하기 >

 

alter user 'root'@'localhost' identified with mysql_native_password by '123qwe!@#';

 

▷ 비밀번호 변경 후 exit 입력하여 접속 해제

exit

 

 

▷ 변경한 비밀번호 확인

mysql에 재접속하여 변경한 비밀번호 확인

C:\Users\HYEON>mysql -uroot -p
Enter password: *********

< 예제 데이터베이스 구축하기 >

 

▷ 명령프롬프트 일반 사용자 권한 에서 예제 파일 "myschool-dump.sql" 이 위치한 디렉토리로 이동

▷ 아래의 명령어로 예제 데이터베이스 설치

mysql -uroot -p < myschool-dump.sql

 

▷ MySQL 에 접속하여 아래의 명령어로 결과 확인

mysql -uroot -p
Enter password: *********

use myschool;

select * from department;


DBMS => 사용할 데이터베이스 열기

DBMS가 관리하는 데이터베이스 중 하나 열기

use 데이터베이스 이름;

ex) use myschool;

 

show databases;       (데이터베이스 목록 보기)


DBMS => Table

하나의 데이터베이스 안에서 자료(DATA)를 관리하기 위한 표

use 데이터베이스이름;

show tables;       (선택한 데이터베이스 안의 테이블 목록 보기)

 

desc 테이블이름;

 

반응형

'IT > Database' 카테고리의 다른 글

HeidiSQL  (1) 2024.11.29
MySQL Error  (2) 2024.11.28
MySQL 데이터베이스 관리  (3) 2024.11.13
트랜잭션 Transaction  (1) 2024.10.08
데이터 입력, 수정, 삭제  (0) 2024.10.07