'소프트웨어개발/MySQL'에 해당되는 글 3건

  1. Windows에서 WampServer로 Apache, PHP, MySQL 설치하기 (2)
  2. MySQL, CREATE TABLE 테이블 생성하기
  3. Windows 운영체제에서 MySQL 5.7.x 설치하기

Windows에서 WampServer로 Apache, PHP, MySQL 설치하기

개요

WampServerWindows 운영체제 환경에서 Apache, PHP, MySQL을 모두 한 방에 설치해주고 편리한 관리 툴을 제공하는 애플리케이션이다. 이 글을 쓰고 있는 현재 최신 버전은 3.0.0으로 Apache 2.4.17, MySQL 5.7.9, PHP 5.6.16, 7.0.0을 지원한다. 즉, WampServer 설치 한 번으로 3개 툴을 자동으로 설치해준다.

다운로드 및 설치

  • WampServer 설치 전 반드시 Visual Studio 2015용 Visual C++ 재배포 가능 패키지가 설치되어 있어야 한다. 여기를 클릭하여 안내에 따라 다운로드 및 설치를 하도록 한다. 미설치시 아래와 같은 오류가 발생한다.
컴퓨터에 VCRUNTIME140.dll이(가) 없어 프로그램을 시작할 수 없습니다. 프로그램을 다시 설치하여 이 문제를 해결하십시오.
  • WampServer 다운로드 경로는 다음과 같다. http://www.wampserver.com/en/ → DOWNLOAD → WAMPSERVER (64 BITS & PHP 5.6.15 & PHP 7) 3를 차례대로 클릭하여 다운로드한다.
  • 설치시 기본 경로는 C:\wamp64 또는 D:\wamp64와 같이 로컬 디스크의 루트 폴더를 지정한다.

설치 후 동작 확인

  • 설치 후 바로 서버가 시작되지 않는다. 시작 → Wampserver64 → Wampserver64를 실행하면 W 모양의 트레이 아이콘이 실행된다. 트레이 아이콘을 마우스 클릭하면 서버가 시작된다. 브라우저에서 http://localhost/index.php을 실행하여 WampServer가 정상 작동하는 것을 확인해보자.
  • 처음 설치시 폴더를 기본값인 D:\wamp64로 지정했다면 PHP가 서비스되는 루트 폴더는 D:\wamp64\www가 된다. 원하는 애플리케이션을 설치하거나 새로 제작할 경우 해당 폴더에 하위 폴더를 생성하도록 한다.
  • 기본값 설치시 PHP가 서비스되는 기본 포트는 80이다. 트레이 아이콘에서 쉽게 변경할 수 없다.
  • 기본값 설치시 MySQL이 서비스되는 기본 포트는 3306이다. 트레이 아이콘에서 쉽게 변경할 수 없다.
저작자 표시 비영리 동일 조건 변경 허락
신고

MySQL, CREATE TABLE 테이블 생성하기

먼저 읽어볼만한 글

CREATE TABLE 예시

MySQL 테이블 생성의 예는 아래와 같다. 아래는 회원 테이블 생성의 간단한 예이다.

CREATE TABLE user (
  id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  email VARCHAR(255) NOT NULL UNIQUE,
  password_encrypted VARCHAR(255) NOT NULL,
  is_deleted TINYINT(1) NOT NULL DEFAULT 0,
  created_datetime DATETIME DEFAULT CURRENT_TIMESTAMP,
  updated_datetime DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (id)
)
DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE utf8mb4_unicode_ci;
  • id 컬럼은 PRIMARY KEY이다. 타입을 INT UNSIGNED로 선언하여 약 42억개의 서로 중복되지 않는 PK를 가진 로우를 저장할 수 있다. AUTO_INCREMENT에 의해 새로운 로우가 INSERT 될 때마다 1부터 4294967295까지의 PK가 자동 생성된다. 괄호 안의 숫자는 데이터 조회시 출력될 자리수로 실제 타입이 가진 크기와 무관하다.


  • email 컬럼은 회원 이메일 주소를 저장한다. VARCHAR 타입의 괄호 안 숫자는 저장 가능한 최대 글자 수로 바이트 크기가 아님에 유의한다. 한글 1자 또한 영문자 1자와 동일하게 1개 글자로 계산된다. CHAR_LENGTH() 함수와 동일하다. (글자수가 아닌 바이트 관점에서 UTF-8 기준 한글 1자는 3바이트, 영문자 포함 아스키 코드는 1바이트로 저장된다. LENTH() 함수와 동일하다.)


  • password_encrypted 컬럼은 회원 해쉬 변환된 비밀번호를 저장한다. 보안상의 이유로 반드시 비밀번호를 그대로 저장하지 않고 해쉬 변환 후 저장해야 한다. BCrypt 해쉬 알고리즘을 사용할 경우 60-bytes 크기의 문자열 해쉬를 생성한다. 해쉬 변환 관련 글은 이 글을 참고한다.


  • is_deleted 컬럼는 회원 삭제 여부를 저장한다. false는 0, true이면 1을 저장하면 된다. TINYINT는 -128부터 127까지를 저장 가능한 타입이다. INT와 마찬가지로 괄호 안의 숫자는 데이터 조회시 출력될 자리수이다.


  • created_datetime 컬럼은 회원 가입일시를 저장한다. DATETIME은 일시를 저장할 수 있는 타입이다. 기본값으로 CURRENT_TIMESTAMP를 명시하면 자동으로 현재 일시가 저장된다.


  • updated_datetime 컬럼은 회원 정보의 수정일시를 저장한다. 회원 정보 변경시 자동으로 현재 일시가 저장된다.


  • 테이블의 기본 언어셋으로 모든 유니코드를 지원하는 utf8mb4을 지정하였다. COLLATE는 정렬의 정확도를 결정한다. 비영어권은 utf8mb4_unicode_ci를 지정해야 정확하게 정렬된다.


  • MySQL 5.5 이상부터는 스토리지 엔진을 생략해도 기본값으로 InnoDB가 설정된다. InnoDB는 트랜잭션 처리를 지원한다.

참고 글

저작자 표시 비영리 동일 조건 변경 허락
신고

Windows 운영체제에서 MySQL 5.7.x 설치하기

MySQL for Windows 다운로드

MySQL 무료 버전인 MySQL Community Edition을 다운로드한다. 본 글에서 사용한 버전은 5.7.12이다.


  • https://www.mysql.com → Downloads → MySQL Community Edition → Community (GPL) Downloads → MYSQL Community Server → Windows (x86, 64-bit), ZIP Archive -> Downloads


  • 다운로드한 파일을 C:\mysql 경로에 압축 해제한다.

MySQL 설치 및 초기화

MySQL 서버를 기동하려면 간단히 \bin\mysqld.exe 명령을 실행하면 된다. MySQL 설치 후 첫 실행을 하면 아래와 같은 오류가 발생한다. 첫 실행에 앞서 초기화 및 비밀번호 변경 작업이 필요하다.

C:\mysql\bin> mysqld
[ERROR] failed to set datadir to C:\mysql\data\
[ERROR] Aborting

아래와 같이 초기화를 실행하면 완료 후 랜덤 생성된 root 계정의 비밀번호를 알려준다. 비밀번호 변경 작업을 아래에서 진행할 것이다.

C:\mysql\bin> mysqld --initialize
[Note] A temporary password is generated for root@localhost: 4(o3JgdIXHdV

다시 MySQL을 실행하면 아래와 같이 정상적으로 서버가 작동한 것을 확인할 수 있다. 커맨드 창을 종료해도 작업 관리자의 백그라운드에서 프로세스에서 Mysqld 데몬이 실행되고 있음을 확인할 수 있다.

C:\mysql\bin> mysqld --skip-grant-tables
[Note] mysqld: ready for connections.
Version: '5.7.12'  socket: ''  port: 3306  MySQL Community Server (GPL)

root 계정으로 MySQL에 접속한다. 아래와 같이 정상적으로 프롬프트가 출력될 것이다.

C:\mysql\bin> mysql -u root mysql
mysql>

앞서 랜덤 생성되었던 root 계정의 비밀번호를 자신만 기억할 수 있는 문자열로 변경한다.

mysql> UPDATE user SET authentication_string=PASSWORD('Q1w2e3r4') WHERE User='root';
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1

mysql> quit

MySQL 데몬을 재시작 후 다시 아래와 같이 root 계정으로 로그인하면 변경된 비밀번호로 접속됨을 확인할 수 있다.

C:\mysql\bin> mysqladmin -u root shutdown

C:\mysql\bin> mysqld

C:\mysql\bin> mysql -u root -p
Enter password: ********

mysql> SET PASSWORD = PASSWORD('Q1w2e3r4');

새 데이터베이스 생성

아래와 같이 새 데이터베이스를 생성하면 본격적으로 MySQL을 사용할 수 있다.

mysql> CREATE DATABASE spring_boot_example;
Query OK, 1 row affected (0.00 sec)

mysql> USE spring_boot_example;
Database changed

저작자 표시 비영리 동일 조건 변경 허락
신고