Site Search :
Standard Enterprise XML Methodology Pattern Setting Tunning Other
Article Contributors
GuestBook
Javapattern Maven
XSourceGen Dev
JetSpeed Test
JLook Image
jLook Family Site


MySQL JDBC Connection
 
프로그래밍에 있어서 데이터베이스는 없어서는 안될 도구이다. 자바는 유연한 JDBC를 제공한다. 이 JDBC를 통해서 MySQL을 접속하여 데이터를 가져오도록 하자 ( 2003/02/28 ) 553
Written by ienvyou - 최지웅
1 of 3
 
---------------------------------------
1. MySql이란 뭐죠?
---------------------------------------
MySql이란 DBMS의 일종입니다.
잘알려진 DBMS로는 ORACLE,DB2,Sybase,Infomix,.... Ingress,PostgreSQL...MiniSQL
국산으로는 UniSQL이란것이 있죠.
그중 공개용으로 발표되어 있는건 miniSQL,PostgreSQL,MySql..등이 있죠.
miniSQL은 개인(?)이 만들고있고, 작고 빠르지만, 인증시스템이 없죠.
PostgreSQL은 상용DBMS만큼의 성능과 기능을 기지고 있고 공개적인 
개발이 이뤄지고있지만 덩치가 크고,UNIX버전만 있죠. NT로 porting하는 방법은 
나와 있는데 까다롭고...
MySQL은 작고 빠르고(ORACLE의 2~5배정도) 많은 Application에서 지원하고 있죠.
Windows용도 UNIX버전만큼 빠른 upgrade가 되고 있죠.


---------------------------------------
2. MySql 어디서 어떤 버전을 다운 받아야 하나요?
---------------------------------------
MySql 홈페이지 : http://www.mysql.com/
MySql관련 한글사이트 : http://www.taejun.pe.kr/

얼마전까지만해도 Win용 MySql은 shareware였고 버전도 UNIX버전보다 다소 뒤떨어졌었지만
이제는 GPL을 따르고 있고 , 버전도 UNIX와 같이 가고 있다. 한마디로 공짜로 쓸 수 있읍니다.

http://www.mysql.com/downloads/  에서 최신버전으로의 링크를 따라가고  그 페이지에서 
Standard binary (tarball) distributions 바로 아래
windows용(http://www.mysql.com/Downloads/MySQL-3.23/mysql-3.23.33-win.zip)을 받고

winzip이나 알집으로풀어 setup.exe를 실행시킴.

설치시 주의점 : 되도록 설치 디렉토리는 c:\mysql 로 할것. 
만약 다른 드라이버일경우 c:\my.cnf파일을 만들고..... 등등의 귀찮은 일이 생김.
자세한 사항은 설치시 화면에 뜸.

---------------------------------------
3. MySql용 JDBC driver는 어디에 있나요?
---------------------------------------
JDBC는 http://www.worldserver.com/mm.mysql/  에 가서
2.0.4 소스버전(http://www.worldserver.com/mm.mysql/dist/mm.mysql-2.0.4-src.jar)을
받은후 풀면 mysql.jar가 있는데 그걸쓰면됨.
소스버전말고 binary 버전( 약 108K )을 써도됨. 그건 소스버전의 mysql.jar와 동일한 이름임.
mysql.jar를 c:\jdk1.2.2\jre\lib\ext 에 복사하면 됩니다.

한글을 입출력 할때에는 converting하지 않습니다. 
현재 JDBC2.0까지 지원됨.
내용을 봤더니 기특하게도 JDK 1.1.*에서는 JDBC 1.0만, Java2에서는 JDBC 2.0까지 
지원되도록 아주 교묘(?)하게 만들어 놨음.

---------------------------------------
4. MySql은 어떻게 실행시키나요?
---------------------------------------
시작은 mysql설치 디렉토리 아래bin에(C:\mysql\bin) 가서  mysqld.exe 를 실행.
dos창이 잠시 보였다가 없어짐.
( 놀라지마세요. CTRL-ALT-DEL을눌러보면 
mysqld-opt.exe(win95/98)나 mysqld-nt.exe(winnt/2000)가 실행중 )

확인법:
prompt> cd c:\mysql\bin
prompt> mysql 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 3.23.21-beta

Type 'help' for help.

mysql>

c:\mysql\bin\mysql.exe는 mysql용 client program
이러한 메세지가 뜨면 정상적으로 MySql서버가 동작중임.
그리고 간단한 명령어 몇개를 입력해보죠.

mysql> show databases;      --> 기본적으로 만들어져있는 database 이름 출력
+----------+
| Database |
+----------+
| mysql    |
| test     |
+----------+
2 rows in set (0.00 sec)

mysql> select user();       --> 로긴한 사용자 정보 출력
+----------------+
| user()         |
+----------------+
| ODBC@localhost |
+----------------+
1 row in set (0.08 sec)

mysql>


위와같이 나오면 정상적인 설치임.
끝내려면 exit이라하면 됨.

mysql> exit;

---------------------------------------
5. Winnt/Win2000에서 서비스로 동작 시킬 수 있나요?
---------------------------------------

winnt/win2000에서는 mysql을 서비스로 등록가능.
방법 1 (command line ):  mysql설치 디렉토리 아래bin에 가면 mysqld.exe있음.

prompt> mysqld     -install  ( service로 등록 )
prompt> net start mysql   ( mysql 서비스 시작 )


prompt> net stop mysql ( mysql 서비스 중지 )
prompt> mysqld     -remove ( service에서 등록 해제 )

방법 2 (GUI) : c:\mysql\bin\win,ysqladmin.exe를 실행시킴.
그러면 userid와 암호를 묻는 화면이 뜰때 userid는 root, 암호는 sunedu21을 입력.
입력한 root는 기본적으로 제공되는 관리자용 id이고 암호는 없음. sunedu21을 입력하면 
그걸로 자동 설정됨.

---------------------------------------
6. mysql.exe의 간단한 사용법을...
---------------------------------------

mysql.exe를 이용해서 다른 시스템의 database로 접속가능하고 다른 사용자로도 접속이 
가능합니다.

mysql.exe옵션들

prompt> mysql [-h hostname] [-u userID] [-p암호] [database]

예:
prompt> mysql -h 203.239.XXX.XXX -u root -p sl300

-h 203.239.XXX.XXX  : 203.239.XXX.XXX으로 접속, 생략하면 기본값 127.0.0.1 이 사용됨.
-u root          : root사용자로 접속 -u옵션을 안주면 anonymous로 접속
-p               : 암호를 입력한후 접속. 암호를 묻는 프롬프트가 뜸.
                   암호가 있는 사용자로 접속시에는 반드시 사용.
                   만약 암호를 같이 입력하려면 암호를 -p옵션과 붙여 입력.(-ptiger)
database         : 사용할 database이름. 만약 생략하면 접속후 use명령으로 
                   database를 지정해야됨. 기본제공 database name은 mysql,test 2개.ㄴ

---------------------------------------
7. MySql관련 GUI tool은 없나요?
---------------------------------------
MySql용 GUI tool은 대부분이 UNIX/LINUX용입니다.
다행히 3.23.21버전부터는 winmysqladmin.exe 라는 GUI tool이 포함되어 있읍니다.
( C:\mysql\bin\winmysqladmin.exe )
이 툴은 MySql서버를 start,stop시킬 수 있고, NT/2000에서는 service에 등록,해제도 가능합니다.
그리고 현재 접속하고있는 process의 갯수와 MySql관련 환경변수 정보와 설정정보까지 
파악이 가능합니다.

이 툴은 win95/98/nt/2000에서 모두 동작합니다.
이명령어를 처음 실행하면 접속시 사용할 사용자id와 암호를 넣으라하는데 주로 root를 입력하고
암호는 아무거나 입력하면됩니다.
단 이때 입력한 암호는 자동으로 root의 암호로 인식이 됩니다. 반드시 기억해야겠죠?

그러면 시스템트레이에 신호등 아이콘이 생깁니다. 이걸 누르면 showme 와 
winnt,win9X메뉴가 보이죠. winnt,win9X 메뉴를 선택하면 server start,stop tool의 shutdown이 보입니다.

현재 mysql server가 실행중이면 파란색불이 실행하지 않으면 빨간색 불이 들어옵니다.

만약 빨간색불(mysql서버가 중지중)일때 실행 시키려면 트레이에 있는 신호등 아이콘을 누르고
WinNT나Win9X를 선택, start the service 를 선택하면 신호등에 파라생 불이 들어옴.
즉 mysql서버가 시작했다는 말.

그외 관리용 명령어인 mysqladmin이 있음.
수동으로 실행시에는 mysqld.exe를 실행하면 되지만 수동으로 stop시키려면 mysqladmin을 실행.
물론 옵션과함께...
아래는 mysqladmin용 명령어임. 기능은 설명을 참조.

  create databasename   Create a new database
  drop databasename     Delete a database and all its tables
  extended-status       Gives an extended status message from the server
  flush-hosts           Flush all cached hosts
  flush-logs            Flush all logs
  flush-status          Clear status variables
  flush-tables          Flush all tables
  flush-threads         Flush the thread cache
  flush-privileges      Reload grant tables (same as reload)
  kill id,id,...        Kill mysql threads
  password new-password Change old password to new-password
  ping                  Check if mysqld is alive
  processlist           Show list of active threads in server
  reload                Reload grant tables
  refresh               Flush all tables and close and open logfiles
  shutdown              Take server down
  status                Gives a short status message from the server
  variables             Prints variables available
  version               Get version info from server

위 명령어중 특히 신경쓸것은 password관련.

설치후 반드시 root(MySQL DB)의 암호를설정할것.  
안하면 불행한일(DB삭제)이 발생할 지도...   

# mysqladmin -u root password 새암호

 
1 2 3
References
 
http://www.mysql.com
http://java.sun.com/jdbc
Copyright ⓒ 2003 www.javapattern.info & www.jlook.com, an jLOOK co.,LTD