MySQL 5.0.45 원하는 위치에 수동 설치 및 윈도 서비스로 등록 하기

DevOps|2008. 2. 20. 10:10

테스트 환경으로 사용할 일이 생겨서 MySQL을 집에 설치 했었습니다. 인스톨러 없이 D:\TOOLS 디렉토리에 UTF-8 환경으로 설치한 후 윈도 서비스로 등록까지 마쳤는데... 오늘 설치본을 그대로 복사해서 회사에서 사용하는 컴퓨터에 설치하려고 하니 어떻게 했는지 기억이 전혀 안나더군요. :-( 이러한 이유로 여기에 설치법을 남깁니다.


MySQL 설치

저는 MySQL AB다운로드 페이지에 있는 윈도 버전 중 수동설치 버전(Without installer 혹은 ZIP Archive라고 써 있는 놈)을 다운로드 받았습니다. MySQL Account 만들거냐고 물어보면 아래에 있는 "No Thanks..." 링크를 눌러서 등록 안하고 받으셔도 됩니다.


무설치 버전인 만큼 설치는 매우 간단합니다. 원하는 디렉토리에 압축을 풀어주기만 하면 되죠!
저는 D:\TOOLS\mysql-5.0.45-win32 디렉토리에 압축을 풀었습니다.

다른 작업 없이 명령 프롬프트를 하나 실행한 다음 D:\TOOLS\mysql-5.0.45-win32\bin 디렉토리로 이동한 후에 "mysqld --console" 명령만 실행하셔도 MySQL 서버를 바로 사용하실 수 있습니다.

D:\TOOLS\mysql-5.0.45-win32\bin>mysqld --console
080220 10:47:57  InnoDB: Started; log sequence number 0 19944194
080220 10:47:58 [Note] mysqld: ready for connections.
Version: '5.0.45-community-nt'  socket: ''  port: 3306  MySQL Community Edition (GPL)

위와 비슷한 메시지를 보여 주며 오류 없이 MySQL 서버가 시작된 후, 다음과 같이 "mysqlshow -u root" 명령을 실행하시면 Database 목록을 볼 수 있습니다.

D:\TOOLS\mysql-5.0.45-win32\bin>mysqlshow -u root
+--------------------+
|     Databases      |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+


위의 과정만으로도 MySQL은 사용할 수 있는 상태가 되었습니다만, 좀 더 세밀한 설정을 하기 위해서는 옵션 파일을 만들어 줘야 합니다. 옵션 파일의 예제가 설치 디렉토리에 있기 때문에 약간의 수정을 해주면 바로 사용할 수 있습니다. 설치 디렉토리(D:\TOOLS\mysql-5.0.45-win32)를 보면 5개의 ini 확장자를 가진 파일이 있습니다. 용도에 따라 선택 하시면 됩니다. 저는 간단한 테스트가 목적이기 때문에 my-small.ini 파일을 선택했습니다.
MySQL은 "[설치 디렉토리]\my.ini" 파일 혹은, "C:\Windows\my.ini" 파일이나 "C:\my.cnf" 파일을 옵션 파일로 찾습니다. 저는 my-small.ini 파일의 복사본을 하나 만들어서 my.ini로 이름을 변경한 후, "C:\Windows" 디렉토리로 복사해서 옵션 파일 설정을 마쳤습니다.

MySQL은 Windows directory에서 my.ini 파일을 찾습니다. Windows directory 경로는 윈도 종류에 따라서 다르기 때문에 정확한 경로를 확인하려면, 명령 프롬프트에서 다음의 명령을 실행해 보시면 됩니다.

C:\> echo %WINDIR%


윈도 서비스로 등록하기

이 글에서 옵션파일을 만들어서 사용하는 목적은 윈도 서비스로 MySQL을 등록하기 위해서입니다. 이를 위한 최소한의 수정을 한 후 MySQL을 윈도 서비스로 등록해 보겠습니다.

윈도 서비스로 등록하기 위해서는 my.ini 파일에 설치 경로를 명시해야합니다.
위에서 만든 "C:\Windows\my.ini" 파일을 열어서 "[mysqld]" 섹션을 찾은 후 다음의 2줄을 넣어 줍니다(경로 구분자로 '\'가 아닌 '/'를 사용합니다. 주의하세요!).

basedir = D:/TOOLS/mysql-5.0.45-win32
datadir  = D:/TOOLS/mysql-5.0.45-win32/data


쉽게 짐작할 수 있겠지만, 위의 내용은 설치경로와 MySQL이 사용하는 데이터의 저장 경로입니다.
이제 my.ini 파일은 아래와 비슷한 내용으로 변경되었을겁니다.

# The MySQL server
[mysqld]
basedir = D:/TOOLS/mysql-5.0.45-win32
datadir  = D:/TOOLS/mysql-5.0.45-win32/data

port  = 3306
socket  = /tmp/mysql.sock
skip-locking
key_buffer = 16K
max_allowed_packet = 1M
table_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 64K


이제 윈도 서비스로 등록을 해보죠. MySQL이 실행 중이라면, 아래의 명령을 실행하여 MySQL을 죽입니다.
D:\TOOLS\mysql-5.0.45-win32\bin>mysqladmin -u root shutdown

MySQL이 완전히 종료된 것을 확인한 후, 아래의 명령으로 MySQL을 윈도 서비스로 등록할 수 있습니다.
D:\TOOLS\mysql-5.0.45-win32\bin>mysqld --install

만약 MySQL 서비스의 시작유형을 자동이 아닌 수동으로 하고 싶다면, 아래의 명령으로 등록합니다.
D:\TOOLS\mysql-5.0.45-win32\bin>mysqld --install-manual

설치된 MySQL 서비스를 삭제하고 싶으면, 아래의 명령으로 삭제할 수 있습니다.
D:\TOOLS\mysql-5.0.45-win32\bin>mysqld --remove

윈도 서비스 등록에 대한 더 많은 정보를 원하시면 이곳의 문서를 참고하세요~!
charset euckr
set character set euckr;
show variables like 'c%';


'DevOps' 카테고리의 다른 글

Install knife-solo(knife-solo 설치)  (0) 2014.10.21
Install Chef on CentOS(Chef 설치)  (0) 2014.10.20
SonarQube Runner를 사용하여 프로젝트 분석하기  (0) 2014.08.17
SonarQube 설치 및 설정  (2) 2014.08.05
HSQLDB 시작하기  (2) 2007.11.30

댓글()

HSQLDB 시작하기

DevOps|2007. 11. 30. 11:36

자바개발환경만 있으면 간단하게 사용할 수 있는 Database Engine인 HSQLDB를 설치해 보겠습니다.


HSQLDB 설치

먼저 소스포지의 다운로드 페이지에서 HSQLDB를 다운로드 받습니다. 현재(2007-11-30) 최신버젼은 1.8.0.9 버젼이군요.
사실 HSQLDB는 설치라고 할만한 과정이 없습니다. 그냥 압축파일의 lib 폴더 안에 있는 hsqldb.jar 파일만 있으면 HSQLDB를 사용할 수 있습니다. 원하는 곳에 복사하고 원하는 방식으로 실행을 하면 됩니다.
저는 하이버네이트 테스트를 위해서 설치한 터라 "D:\WORKSPACE_JEE\HibernatePractice\lib" 폴더에 넣었습니다.

사용자 삽입 이미지


HSQLDB 실행

HSQLDB는 Server Mode라고 부르는 3가지의 실행방법을 가지고 있습니다. 이 Server Mode 중 가장 일반적인 방식인 Hsqldb Server로 실행하는 방법에 대해서 알아보겠습니다. 다른 방식에 대해서는 나중에 또 기회가 있을거라고 생각합니다. :-)

명령 프롬프트 창을 하나 띄우고 다음과 같이 입력합니다.

D:\WORKSPACE_JEE\HibernatePractice>java -classpath lib/hsqldb.jar org.hsqldb.Server -database.0 file:data/test -dbname.0 javaworld


"-database.0 file:data/test" 옵션은 Database가 사용할 경로와 파일명을 명시하고 있습니다. 예에서는 상대경로로 현재 폴더 아래의 data 폴더에 "test.*" 형식으로 관련 파일을 생성하라고 얘기하고 있습니다. 물론 절대경로로 지정해도 됩니다.

D:\WORKSPACE_JEE\HibernatePractice>java -classpath lib/hsqldb.jar org.hsqldb.Server -database.0 file:D:\WORKSPACE_JEE\HibernatePractice\data\test -dbname.0 javaworld

[Server@1270b73]: [Thread[main,5,main]]: checkRunning(false) entered
[Server@1270b73]: [Thread[main,5,main]]: checkRunning(false) exited
[Server@1270b73]: Startup sequence initiated from main() method
[Server@1270b73]: Loaded properties from [D:\WORKSPACE_JEE\HibernatePractice\server.properties]
[Server@1270b73]: Initiating startup sequence...
[Server@1270b73]: Server socket opened successfully in 40 ms.
[Server@1270b73]: Database [index=0, id=0, db=file:data/test, alias=javaworld] opened sucessfully in 1351 ms.
[Server@1270b73]: Startup sequence completed in 1411 ms.
[Server@1270b73]: 2007-12-05 10:50:20.203 HSQLDB server 1.8.0 is online
[Server@1270b73]: To close normally, connect and execute SHUTDOWN SQL
[Server@1270b73]: From command line, use [Ctrl]+[C] to abort abruptly

"-dbname.0 javaworld" 옵션은 Databse의 alias(별칭)을 지정하고 있습니다. 위의 경우는 'javaworld'라는 이름으로 Database의 이름을 지정하고 있는거죠. 이 alias는 어플리케이션에서 jdbc를 통해 hsqldb에 접근할 때 사용하게 됩니다. 위의 경우 jdbc connection URL은 "jdbc:hsqldb:hsql://localhost/javaworld"입니다.

각 옵션명의 뒤쪽에 붙어있는 ".0" 이라는 문자는 database의 인덱스를 의미합니다. hsqldb는 0~9까지의 인덱스 값을 허용하므로, 총 10개의 Database를 동시에 띄울 수 있습니다.
즉 옵션 "-database.0 file:data/test -dbname.0 javaworld"은 인덱스 값 0에 할당된 Database가 현재 폴더 아래의 'data' 폴더에 'test.*' 형식의 관련 파일들을 사용하며, alias(dbname)은 javaworld라는 것을 의미합니다. 위의 실행 예에 녹색으로 표시된 부분을 보면 이해에 조금 더 도움이 될겁니다.

Database Manager

Database Manager는 HSQLDB Database에 질의를 하거나 테이블 등의 Database 객체를 볼 수 있게 해주는 GUI 툴입니다.
Database Manager는 hsqldb.jar 파일에 포함 되어 있기 때문에 아래와 같이 명령 프롬프트에서 입력하면 바로 사용이 가능합니다.

D:\WORKSPACE_JEE\HibernatePractice>java -classpath lib/hsqldb.jar org.hsqldb.util.DatabaseManager


사용자 삽입 이미지javaworld Database 접속


javaworld database가 이미 실행 중이라면 위와 같이 Driver, URL 등을 입력하고 OK 버튼을 누르면 바로 javaworld database를 관리할 수 있습니다.

사용자 삽입 이미지


DDL이나 DML을 입력한 후 Execute 버튼을 누르면(단축키 : Ctrl-Enter) 입력한 SQL문이 실행됩니다.
위와 같이 DDL 문을 실행했을 경우에는 좌측의 트리가 자동으로 갱신되지 않는데, 이럴 때는 View-Refresh Tree 메뉴를 한 번 클릭해 주면 갱신된 트리를 볼 수 있습니다.

사용법이 매우 직관적이고 간단하기 때문에 메뉴 등을 직접 살펴보면 더이상의 설명은 필요 없을 듯합니다. :-)

댓글()