개발자들에게 있어서 자신의 컴퓨터에 프로그램 개발환경을 맞추는 것은 가장 기본적이고, 가장 중요하다고 할 수 있을 것입니다. 하지만 생각보다 쉽지 않죠? 왜냐하면 설치해야 하는 프로그램마다, 진행하고자 하는 프로젝트마다 설치해야 할 프로그램의 종류나 버전, 셋팅방법 등이 다양하기 때문일 것입니다. 하지만 하나씩 설치해보고 내용을 잘 정리해나간다면 나중에 금방 하실 수 있을것입니다.
여기서는 Window 환경에서 MySQL을 설치하는 방법에 대해서 안내하겠습니다.
[OS종류 / 설치할 MySQL 버전]
OS : Window 8.0 (64bit)
MySQL : MySQL 5.6.14
[목차]
1. MySQL 다운로드
2. 압축해제
3. 환경변수 등록
4. my-default.ini 파일을 이용한 my.ini 파일 생성
5. Window 서비스 등록, MySQL 기동 및 접속 테스트
6. Root 계정설정
[1. MySQL 다운로드]
먼저 아래 URL에 접속하시면 [그림 1-1 MySQL 홈페이지] 를 보실 수 있습니다. 여기서 상단에 "Downloads (GA)" 탭을 클릭합니다.
접속 URL : http://dev.mysql.com/
[그림 1-1 MySQL 홈페이지]
그 다음 아래 [그림 1-2 MySQL 홈페이지]에서 좌측 Left 메뉴에서 "MySQL Community Server" 를 클릭합니다. 다른 제품군에 대해서는 돈을 주고 구매를 해야 하거나, MySQL과 연관된 프로그램을 개발할 때 필요한 다른 프로그램이나 라이브러리입니다. 개발목적으로 Database를 설치하고자 할 경우에는 MySQL Community Server를 선택하셔야 합니다.
[그림 1-2 MySQL 홈페이지]
[그림 1-3 MySQL 다운로드]는 [그림 1-2 MySQL 홈페이지]에서 MySQL Community Server를 클릭했을 때 나타나는 화면의 하단 부분입니다. 하단 부분에 보시면 아래 그림 1-3과 같이 MySQL을 다운로드할 수 있는 화면을 볼 수 있습니다.
[그림 1-3 MySQL 다운로드]
Window 환경에 설치할 MySQL은 크게 두 가지로 나누어집니다. Window 설치마법사(Window Installer MSI)를 통한 설치와 ZIP 파일을 압축해제하여 설치하는 것이 바로 그것입니다.
저는 ZIP 파일 압축해제하여 설치하는 방법을 선택하겠습니다. 따라서 "Windows (x86, 64-bit), ZIP" 을 다운로드 받겠습니다.
[2. 압축해제]
저는 압축해제를 통해 MySQL을 설치하도록 하겠습니다. 아래 [그림 2-1 C드라이브에 MySQL 설치]와 같이 설치하고자 하는 위치에 다운로드 받은 MySQL ZIP 파일을 압축해제 합니다. 저는 C드라이브에 압축해제하였습니다.
[그림 2-1 C드라이브에 MySQL 설치]
[3. 환경변수 등록]
이제 환경변수를 등록할 차례입니다. 환경변수를 등록하는 이유는 Window의 커맨드 창에서 명령어를 입력하여 MySQL을 실행하거나 접속하는 등 MySQL을 다루기 위함입니다. 환경변수를 등록하지 않는다면 MySQL을 실행하거나 접속하기 위해서 MySQL이 설치된 경로에 매번 접근해야 합니다. (dir, cd 명령어로 매번 찾아서 들어간다면 번거롭겠죠?)
아래 [그림 3-1 제어판의 시스템 창]에서 "고급 시스템 설정"을 클릭합니다.
[그림 3-1 제어판의 시스템 창]
위와 같이 "고급 시스템 설정"을 클릭하면 아래 [그림 3-2 시스템 속성 창]을 보실 수 있습니다. 여기서 "환경 변수(N)"을 클릭합니다.
[그림 3-2 시스템 속성 창]
[그림 3-3 환경변수]와 같이 팝업이 뜨는 것을 볼 수 있습니다. 여기서 "새로 만들기(W)"를 클릭합니다. 새로운 환경변수를 등록할 것입니다.
[그림 3-3 환경변수]
[그림 3-3 환경변수]에서 "새로 만들기(W)"를 클릭하시면 아래 [그림 3-4 새 시스템 변수 입력창]을 보실 수 있습니다.
[그림 3-4 새 시스템 변수 입력창]
여기서 변수이름과 변수 값은 아래와 같이 입력합니다.
변수이름 : MYSQL_HOME
변수 값 : MySQL이 설치된 경로
ex)
변수이름 : MYSQL_HOME
변수 값 : C:\mysql-5.6.14-winx64
변수이름은 정해진 것이 아닙니다. 따라서 다른 이름으로 설정하셔도 상관없습니다. 본인이 기억하기 쉽고, MySQL 이라는 것을 알기 쉬운 이름으로 설정하시면 됩니다.
환경변수를 등록하시면 아래 [그림 3-5 환경변수 등록]과 같이 MYSQL_HOME이라는 환경변수가 등록된 것을 볼 수 있습니다.
[그림 3-5 환경변수 등록]
아직 끝이 아닙니다! 이 변수를 Path에 등록하셔야 합니다. 그래야 Command 창에서 MySQL을 직접적으로 다루실 수 있습니다. 아래 [그림 3-6 Path 변수 편집]과 같이 "Path" 라는 변수를 찾아서 선택하신 후 편집을 클릭합니다.
[그림 3-6 Path 변수 편집]
그 다음 Path 변수의 변수 값 뒤에 [그림 3-7 Path 변수값에 MYSQL_HOME 변수 삽입]과 같이 ";%MYSQL_HOME%\bin;"을 삽입합니다.
[그림 3-7 Path 변수값에 MYSQL_HOME 변수 삽입]
%MYSQL_HOME% 은 아까 그림 3-5에서 등록한 환경변수에 접근하기 위한 것으로 %MYSQL_HOME% 은 "C:\mysql-5.6.14-winx64" 와 같은 의미가 됩니다. 따라서 %MYSQL_HOME%\bin은 C:\mysql-5.6.14-winx64\bin 와 같다고 보시면 됩니다. 그리고 세미클론(;)은 여러 개의 경로를 구분하기 위한 구분자 기호로 사용됩니다.
※ 즉 지금까지 한 작업은 Command 창에서 C:\mysql-5.6.14-winx64\bin 경로에 한번에 접근하기 위한 작업인 것입니다.
위 작업을 모두 마치면 [그림 3-8 Command 창에서 확인]과 같이 "C:\mysql-5.6.14-winx64\bin"가 보이는 것을 알 수 있습니다.
[그림 3-8 Command 창에서 확인]
[4. my-default.ini 파일을 이용한 my.ini 파일 생성]
이제는 my.ini 파일을 생성할 차례입니다. my.ini 파일의 역할은 MySQL이 처음 기동시 사용할 Port라던가 데이터가 저장될 경로 등을 설정하는 파일이라고 보시면 되겠습니다.
이 파일을 생성하는 방법을 지금부터 소개하겠습니다.
my.ini 파일을 생성하기 위해서 MySQL에서 my-default.ini 파일을 제공합니다. 이 파일은 my.ini 파일을 만들기 위한 샘플이라고 보시면 되겠습니다. 이 파일은 [그림 4-1 my-default.ini 파일]와 같이 MySQL을 설치한 디렉토리에 존재합니다.
[그림 4-1 my-default.ini 파일]
my-default.ini 파일을 에디트 플러스나 울트라 에디터, 메모장 같은 텍스트 편집기로 열어서 보시면 [그림 4-2 my-default.ini 파일의 내용]와 같은 화면을 보실 수 있습니다. 여기서 basedir, datadir, port 항목을 주석 해제하고 내용을 작성해야 합니다.
[그림 4-2 my-default.ini 파일의 내용]
basedir, datadir, port 항목에 대해서 간단히 설명을 드리면 아래와 같습니다.
- basedir : MySQL이 설치된 경로
- datadir : DB Data가 저장될 Storage 경로 (여러분이 사용하는 데이터가 여기에 저장된다고 생각하시면 이해가 쉽습니다.)
- port : MySQL이 사용할 Port 번호 (일반적으로 3306 포트를 이용합니다.)
datadir의 경우 생략해도 됩니다. 만약 생략하게 되면 MySQL이 설치된 디렉토리에서 data 라는 디렉토리를 datadir로 자동으로 설정하기 때문입니다. (ex C:\mysql-5.6.14-winx64\data)
위 내용을 기반으로 아래와 같이 작성하시고 my.ini 파일로 저장하시면 됩니다.
- basedir = C:/mysql-5.6.14-winx64/
- datadir = C:/mysql-5.6.14-winx64/data/ (저는 생략하지 않고 명시적으로 설정했습니다.)
- port = 3306
※ 경험상 디렉토리의 경로를 구분하는 기호는 윈도우 환경일지라도 가능하면 역슬레쉬(\)가 아닌 슬레쉬(/)로 입력하시는 것이 더 좋습니다. 그 이유는 몇몇 프로그램이 역슬레쉬(\) 기호를 escape 문자로 처리하면서 오류가 발생하는 것을 보았기 때문입니다. MySQL에서는 이러한 문제가 일어날 것 같지는 않지만 슬레쉬 기호로 작성해도 문제가 없으므로 여기서는 슬레쉬(/) 기호를 사용합니다.
위 내용대로 작성하시면 [그림 4-3 my.ini 파일 작성]과 같은 화면을 보실 수 있습니다.
[그림 4-3 my.ini 파일 작성]
[5. Window 서비스 등록, MySQL 기동 및 접속 테스트]
이제는 my.ini 파일을 생성하였으므로 MySQL을 기동할 차례입니다. 간혹 MySQL을 기동하지 않고 MySQL이 접속이 되지 않는다는 분들이 계십니다. MySQL을 기동하지 않고 접속하려 하신다면 아래와 같이 [그림 5-1 접속실패 화면]을 보실 수 있습니다.
MySQL을 기동하지 않은 상태에서 Command 창에서 mysql 이라는 명령어 입력시 Can't connect to MySQL server on 'localhost' (10061) 에러를 보실 수 있습니다. 꼭 MySQL을 기동부터 하셔야 합니다.
[그림 5-1 접속실패 화면]
[그림 5-3 MySQL을 Window Service에 등록하기] 처럼 윈도우에 서비스를 등록합니다. 단, 주의하셔야 할 점이 "관리자 권한으로 실행"을 통해서 Command 창을 실행시켜야 합니다. 간혹 [그림 5-2 MySQL Window Service 등록실패]와 같이 권한문제로 서비스가 등록이 되지 않을 수 있기 때문입니다.
Command 창에서 아래와 같은 명령어를 입력하시면 됩니다.
- Window에 MySQL을 서비스로 등록시 : mysqld --install
- Window에 등록된 MySQL 서비스를 삭제시 : mysqld --remove
※ 여기서는 "mysqld --install" 을 입력합니다.
[그림 5-2 MySQL Window Service 등록실패]
위와 같이 실패할 경우 Command 창을 관리자 권한으로 실행해주세요. 아래 그램과 같이 "Service successfully installed."가 출력되면 서비스 등록이 성공한 것입니다.
[그림 5-4 Window 서비스 창]
이렇게 하시면 Window 부팅 시 자동으로 MySQL이 기동됩니다. 만약 자동으로 기동되는 것을 원치 않으시면 "자동"을 "수동"으로 변경하시면 됩니다. (MySQL 항목 우클릭 -> 속성 -> 시작유형을 자동에서 수동으로 변경)
이제 MySQL을 기동시켜 보겠습니다. Command 창에서 아래 명령어를 입력하세요. 그러면 [그림 5-5 MySQL 기동]을 보실 수 있습니다.
MySQL 기동명령어 : net start mysql
MySQL 중지명령어 : net stop mysql
※ 주의) 여기서도 Command 창을 관리자 권한으로 실행하셔야 합니다.
[그림 5-5 MySQL 기동]
이제 MySQL에 접속하겠습니다. 아래 명령어를 Command 창에 입력하시면 MySQL에 접속됩니다. 접속한 화면은 [그림 5-6 MySQL 접속]과 같이 출력됩니다.
[MySQL 접속 명령어]
1. mysql -u계정 -p 입력 후 비밀번호 입력
2. mysql -u계정 -p비밀번호
저는 위에서 1번으로 접속하겠습니다. 따라서 Command 창에 "mysql -uroot -p"을 입력합니다.
[그림 5-6 MySQL 접속]
접속하시면서 아시겠지만 초기에 root 계정에 대해서 비밀번호가 설정되어 있지 않습니다. 따라서 비밀번호를 입력하지 않고 그냥 엔터를 누르시면 바로 MySQL에 접속이 됩니다.
따라서 처음에 접속하시면 root 계정에 비밀번호를 설정하셔야 합니다.
[6. Root 계정 설정]
계정에 대해서 설정할 수 있는 항목은 각종 권한과 비밀번호 등이 여러 가지가 있을 수 있습니다. 여기서는 간단하게 root 계정에 대한 비밀번호를 설정하는 방법에 대해서 안내합니다.
MySQL에 접속하셔서 "mysql" 이라는 Database에 접속해야 합니다. mysql이라는 데이터베이스에 사용자 계정에 대한 정보가 있기 때문입니다. 아래와 같이 명령어를 입력하면 [그림 6-1 Database 목록보기]와 같이 Database 목록을 보실 수 있습니다.
[Database 목록보기]
show databases;
[그림 6-1 Database 목록보기]
여기서 mysql 이라는 항목이 보이실겁니다. 바로 mysql 이라는 이 Database에 접근해야 합니다. 아래 명령어를 입력하시면 해당 Database에 접근하게 됩니다.
DB 선택 쿼리문 : use Database 이름;
ex) use mysql;
위 쿼리문을 실행하시면 아래 [그림 6-2 Database 선택]와 같은 화면대로 Database changed 라는 메시지가 출력됩니다.
[그림 6-2 Database 선택]
그 다음 show tables; 라는 쿼리를 입력하시면 현재 선택한 Database의 Table 목록들을 보실 수 있습니다. 여기서 저희는 user 테이블의 내용을 수정할 것입니다. user 테이블에 root 계정을 포함한 사용자 계정의 정보가 있기 때문입니다.
show tables; 쿼리를 실행하시면 [그림 6-3 mysql Database의 테이블 목록]와 같은 화면이 출력됩니다.
[그림 6-3 mysql Database의 테이블 목록]
user 테이블에 어떤 내용이 있는지 살펴보겠습니다. user 테이블에는 해당 계정이 MySQL에 접속가능한 IP주소(host)와 계정명(user), 비밀번호(password) 그리고 각종 권한 등이 저장되어 있습니다. 여기서 저희는 비밀번호가 어떻게 설정되어 있는지 확인하기 위해서 [그림 6-4 MySQL 계정 정보 조회]와 같이 아래 쿼리문을 실행합니다.
실행할 쿼리문 : select host, user, password from user;
[그림 6-4 MySQL 계정 정보 조회]
위 내용을 보시면 아시겠지만 현재 root 계정이 있고, 비밀번호는 설정되어 있지 않은 상태입니다. 따라서 쿼리문과 password() 함수를 통해서 user 테이블에 비밀번호를 설정하셔야 합니다. 아래 쿼리문을 실행합니다.
비밀번호 변경 쿼리문 : update user set password = password('변경할 비밀번호') where user = '변경할 계정 아이디';
ex)
update user set password = password('root') where user = 'root';
위 쿼리문은 root 라는 계정의 비밀번호를 root 라는 비밀번호로 설정하겠다는 의미입니다. 또한 password() 함수는 비밀번호를 평문데이터로 저장하지 않고, 암호화된 문자열로 비밀번호를 저장하기 위한 함수입니다. 위 쿼리문을 실행시키면 아래 [그림 6-5 MySQL 계정 비밀번호 변경]과 같은 화면을 보실 수 있습니다.
[그림 6-5 MySQL 계정 비밀번호 변경]
이제 다시 user 테이블을 조회하면 [그림 6-6 비밀번호 변경 후 MySQL 계정 정보 조회]와 같이 password 컬럼에 비밀번호가 암호화 되어 저장된 것을 볼 수 있습니다.
[그림 6-6 비밀번호 변경 후 MySQL 계정 정보 조회]
여기서 끝이 아닙니다. 위와 같이 user 테이블의 내용을 수정하였더라도 아직 위 내용이 적용이 된 것은 아닙니다. 아래 쿼리문을 실행해야 비로소 수정된 내용이 적용됩니다.
실행할 쿼리문 : flush privileges;
위 쿼리문을 실행시키면 아래 [그림 6-7 변경된 사용자 정보 MySQL에 적용]과 같은 화면을 보실 수 있습니다.
[그림 6-7 변경된 사용자 정보 MySQL에 적용]
이제 다시 로그인을 해보면, 이전과 같이 비밀번호를 입력하지 않아서 [그림 6-8 비밀번호 변경 후 로그인 실패]와 같이 로그인이 되지 않는 것을 볼 수 있습니다. 영어로 출력된 메시지의 내용은 "root 계정에 접근이 허용되지 않았다."는 의미인데요, 입력한 비밀번호가 틀려서 그렇습니다.
[그림 6-8 비밀번호 변경 후 로그인 실패]
이번엔 위에서 설정했던 비밀번호를 입력하여 로그인 해보겠습니다. 위에서 제가 root 계정에 root 라는 비밀번호로 설정했었는데요, 아래 [그림 6-9 비밀번호 변경 후 로그인 성공]을 보시면 정상적으로 로그인이 되는 것을 볼 수 있습니다.
[그림 6-9 비밀번호 변경 후 로그인 성공]
이제 작업은 끝났습니다. MySQL 다운로드부터 설치, root 계정 설정까지 모두 마쳤습니다. 화면캡처가 들어갔기 때문에 생각보다 긴 글이 되었지만 이런 화면캡처와 설명으로 많은 분들께 도움이 되었으면 좋겠습니다.
그리고 MySQL 설치하는 방법은 이 글 말고도 더 좋은 글은 얼마든지 많이 있으니 다른 블로그의 글도 참고하시기 바랍니다. 실제로 설치하시다 보면 환경적인 차이에 의해 장애가 발생할 수 있고, 위에서 설명한 내용과 다른 부분이 있을 수 있기 때문입니다.
긴 글 읽어주셔서 감사합니다.
'MySQL' 카테고리의 다른 글
MySQL 계정 생성 및 권한설정 (0) | 2015.07.22 |
---|---|
MySQL Database 생성하기 (MySQL DB 생성하기) (0) | 2015.07.22 |
[MySQL] MySQL JOIN 문 - LEFT OUTER JOIN (0) | 2015.07.09 |
[MySQL] MySQL 연결 테스트 자바소스 (0) | 2015.07.09 |
[MySQL] MySQL Java 연동하기 (0) | 2015.07.09 |