2. [SQL기초] MySQL 설치

MySQL  다운로드

MySQL은 윈도우, 맥OS, 리눅스 등 대부분의 운영체제를 지원합니다. 무료로 사용할 수 있는 커뮤니티 서버를 설치해서 사용하게 되므로 MySQL 다운로드 페이지에서 MySQL Community Server를 다운로드해서 설치합니다.

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

MySQL은 오라클의 제품군이기 때문에 오라클 계정으로 회원 가입을 해야 다운로드가 가능합니다.


윈도우10 설치 과정

MySQL 설치 프로그램 다운로드

압축파일로 설치

64비트 ZIP 압축 파일을 다운로드하여 압축을 풉니다. 압축을 푼 폴더에서 그대로 MySQL을 사용하게 되므로, 접근이 용이한 적당한 위치로 MySQL 폴더를 이동하는 것을 권장합니다.

압축 푼 MySQL 폴더 안의 “bin” 폴더에 있는 MySQL 서비스 프로그램인 “mysqld.exe” 파일을 실행해 서비스를 설치해야 합니다. 도스 창, 또는 파워셸 창을 하나 연후 압축을 푼 MySQL 경로 안의 “bin” 폴더로 이동해서 “mysqld.exe --install”을 입력하면 MySQL 서비스가 설치됩니다. 이때 도스 창은 관리자모드로 실행해야 합니다.

데이터베이스 구조를 초기화해야 합니다. 도스 창에서 데이터베이스 초기화 명령을 실행합니다. 이때 데이터베이스 기본 파일들이 들어가는 빈 폴더를 먼저 하나 만든 후 명령을 실행해야 합니다. 예를 들어 “data” 로 데이터 폴더명을 만들었다고 가정하겠습니다.

mysqld --initialize --user=root --basedir=MySQL경로 --datadir=MySQL경로/data

설정이 완료되었으므로 윈도우를 재부팅하거나 서비스 관리자에서 MySQL 서비스를 실행합니다.

MySQL  실행 경로 추가

MySQL의 실행 파일들을 도스 창에서 실행하려면 MySQL 폴더 안의 “bin” 폴더가 윈도우 경로로 등록되어 있어야 합니다.

설정 > 정보 > 고급 시스템 설정 > 고급 탭 > 환경 변수 버튼 클릭 > 시스템 변수 섹션의 “Path” 변수 선택 > 편집 버튼 클릭 > 새로 만들기 버튼 클릭 > MySQL “bin” 경로 입력 > 확인을 눌러 환경 변수 창들을 모두 닫으면 경로가 등록됩니다.

경로 등록 후 도스 창을 열여 “mysql”을 입력해 MySQL 실행 파일 경로의 mysql 프로그램이 실행되는지 확인합니다. 이제 MySQL 경로 안의 “bin” 위치로 이동하지 않아도 MySQL 실행 명령을 사용할 수 있습니다.

MSI 설치 프로그램으로 설치

MSI 설치 프로그램으로 제공되는 윈도우용 MySQL은 32비트 버전만 제공됩니다. 64비트 버전과 성능상 차이가 있는 것은 아니므로 초보자면 설치가 더 쉬운 MSI 설치 프로그램으로 설치하는 것을 권장합니다.

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

MSI 설치 프로그램을 다운로드한 후 MSI 파일을 실행해 MySQL을 설치합니다.

설치 옵션은 개발용(Developer Default)으로 설치합니다.

설치되고 나면 다음과 같은 MySQL 관련 기능들까지 모두 설치되며, MySQL DBMS 관리 프로그램인 워크벤치까지 한꺼번에 설치됩니다.

MySQL Workbench

설치 프로그램으로 설치하면 셸과 워크벤치 그리고 관련 도구들이 프로그램으로 등록되기 때문에 MySQL을 사용하기가 훨씬 수월합니다.

초보자는 MSI 설치 패키지를 이용한 MySQL 설치를 권장합니다. 워크벤치까지 포함되어 있어 설치 후에 바로 학습 과정을 진행할 수 있습니다.


리눅스 설치 과정

리눅스는 패키지 관리자를 이용해 커맨드 라인 셸에서 빠르게 설치할 수 있습니다. 우분투를 기준으로 패키지 관리를 이용해 설치하는 셸 커맨드를 하나씩 실행합니다.

$ sudo apt update
$ sudo apt install mysql-server
$ sudo mysql_secure_installation

먼저 업데이트할 패키지가 있는지 체크를 한 후, MySQL 패키지 설치, 그리고 MySQL 설치 스크립트를 실행하는 순서로 진행됩니다.

MySQL 설치 및 환경 구성을 할 때는 루트 권한이 있는 계정으로 하는 것을 추천합니다.

MySQL 설정 과정 중에 입력하는 루트(root) 계정 패스워드를 잊어버리지 않도록 주의해야 합니다.


워크벤치와 커맨드라인 인터페이스 사용하기

MySQL은 커맨드라인 콘솔과 GUI 프로그램인 워크벤치 2가지 방식으로 데이터베이스에 접근해서 관리 작업을 할 수 있습니다.

커맨드라인 인터페이스는 커맨드라인 콘솔 화면에서 쿼리문을 이용해 데이터베이스를 관리하게 됩니다. 쿼리 결과 또한 콘솔 화면에 포매팅되어 표시되기 때문에 커맨드라인 인터페이스에 익숙해지면 GUI 데이터베이스 관리 프로그램인 워크벤치를 사용하는 것과 큰 차이가 없습니다.

특히 GUI가 없는 서버 환경에서 MySQL을 운영할 때는 콘솔 화면을 접속해서 데이터베이스 관리를 해야 하기 때문에 커맨드 라인 인터페이스 사용법을 알아 두는 것이 좋습니다.

워크벤치는 별도로 설치할 수도 있습니다. 데이터베이스 서비스 전용으로 최소한의 설치를 위해 데이터베이스만 설치한 경우 데이터베이스 관리를 위한 워크벤치는 내 PC에 따로 설치해서 데이터베이스에 접속할 수 있습니다.

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


학습용 샘플 DB 생성하기

https://template2.github.io/download/basicsql.zip

다운로드한 압축파일을 해제합니다.

압축파일 안에는 MySQL, SQL Server, Oracle용으로 구분된 각각의 예제 데이터베이스 구조 생성 및 샘플 데이터 생성 SQL 파일이 있습니다. MySQL이 아닌 다른 데이터베이스를 사용하는 경우 해당되는 데이터베이스용 SQL 스크립트를 사용해 데이터베이스 구조와 샘플 데이터를 생성하면 됩니다.

이름에 "schema" 가 붙은 sql 파일은 데이터베이스 및 테이블 구조를 생성하는 스크립트이며, "data" 가 붙은 파일은 샘플용 데이터를 집어넣는 스크립트입니다. schema -> data 순서로 실행해야 합니다.

사용하려는 데이터베이스용의 파일을 커맨드 라인 인터페이스나 워크벤치에서 스크립트를 실행하려면 MySQL 워크벤치에서 SQL 파일을 연 후 Ctrl+엔터를 누르면 스크립트가 모두 실행됩니다.

MySQL용 예제 데이터베이스 구조를 생성하는 스크립트는 “shop_schema_mysql.sql”이고 샘플 데이터 스크립트는 “shop_data_mysql.sql”입니다.

다음처럼 커맨드 라인 인터페이스로 SQL 스크립트 파일을 직접 실행해서 예제 데이터베이스를 만들 수 있습니다.

mysql -u root -p < 압축푼예제파일경로/shop_schema_mysql.sql
mysql -u root -p < 압축푼예제파일경로/shop_data_mysql.sql

예제 데이터베이스를 생성한 후 shop 데이터베이스의 테이블 목록을 출력하면 다음과 같은 테이블들이 생성되어 있는 것을 확인할 수 있습니다.


커맨드 라인 MySQL  콘솔 실행

커맨드 라인 콘솔에서 쿼리문을 실행한 결과와 워크벤치에서 실행한 결과는 동일합니다. 이 책에서는 기본적으로 커맨드 라인 콘솔에서 실행한 결과 화면을 기준으로 설명을 합니다. 각각의 사용 방법은 장단점이 있으며, MySQL을 사용하는 경우 원격 콘솔 접속을 통해 데이터베이스 관리를 하는 경우가 빈번하기 때문에 커맨드라인 인터페이스 사용에 익숙해질 필요가 있습니다.

콘솔 창, 또는 도스 창에서 커맨드 라인 인터페이스를 실행합니다.

다음 두 가지 커맨드 라인 입력행은 같은 명령어입니다.

mysql root 계정으로 로그인해서 mysql 콘솔을 실행합니다.

mysql -–database shop –-user root -–password
mysql –D shop -u root –p패스워드

MySQL 콘솔 실행 파라미터를 입력할 때는 3가지 주의할 점이 있습니다.

1. 풀 파라미터 이름을 사용할 때는 앞에 "-"를 2개(--user) 붙여야 합니다. 반면에 축약 파라미터 이름을 사용할 때는 "-"를 1개(-u)만 붙입니다.

2. 계정 패스워드는 MySQL 콘솔 커맨드라인에 같이 표시를 하지 않는 것이 보안상 좋습니다.

그래서 보통 기본 mysql 콘솔 로그인은 다음과 같이 입력합니다.

mysql -u root -p

명령을 실행하면 다음과 같이 계정 패스워드 입력을 기다리는 입력라인이 표시됩니다.

3. 패스워드를 MySQL 커맨드라인 인터페이스 실행 라인에 같이 입력할 때는 반드시 패스워드 파라미터(-p)와 계정패스워드를 붙여서 입력(-p패스워드)해야 합니다. 다른 파라미터와 달리 파라미터와 값을 공백으로 띄우면 안됩니다.

root 계정 패스워드를 입력하면 커맨드 라인 인터페이스가 실행되면 입력 커서가 “mysql > “로 변경되면서 사용자 입력을 기다리게 됩니다.

mysql >

MySQL 커맨드라인 콘솔 기본 사용법

데이터베이스 선택

쿼리문을 실행하려면 사용할 데이터베이스를 반드시 선택해야 합니다.

사용할 데이터베이스 선택은 "use 데이터베이스이름;" 명령어를 사용합니다.

사용할 데이터베이스 이름을 모를 때는 show databases; 명령어로 어떤 데이터베이스가 있는지 목록을 볼 수 있습니다.

show databases;
use shop;

테이블 목록 보기

테이블 목록을 보는 명령어는 "show tables;" 입니다.

명령어를 실행하면 현재 선택한 데이터베이스의 모든 사용자 테이블을 목록으로 출력합니다.

show tables;

 

테이블 내용 보기

테이블에 들어있는 모든 데이터를 출력해 보고 싶으면 "select * from 테이블명;" 쿼리문으로 확인할 수 있습니다.

MySQL 커맨드라인 콘솔 종료

커맨드 라인 인터페이스를 종료하려면 exit 명령어를 사용합니다.

mysql > exit;
Bye

커멘드라인 인터페이스가 종료되면 셸 프롬프트로 빠져나오게 됩니다.