사용자 삽입 이미지
---------------------------------------
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 새암호

필요한 TABLE을 만드는 순서:
1. Database만들기
2. MySQL용 사용자 만들기
3. Table만들기

- javabrain용 DB 만들기(2가지 방법)
1.UNIX shell상에서 만들기
# mysqladmin -u root -p create javabrain

2.DB에 login후 만들기
mySQL에서제공하는 명령어중 mysqladmin은 관리용
mysql은 client용 명령어.

# mysql -u root -p mysql
mysql> create database javabrain;

** mysql 명령어 요약
mysql [-h DB서버IP] [-u DB용사용자ID] [-p[암호]] [Database] [< sql-script파일 ]
-p 만 부여하면  암호는 물어봄. 암호까지 주려면 -p암호(-p와 암호를 붙여씀)


- 새사용자등록
먼저 MySQL에 root로 login
# mysql -u root -p mysql

mysql> grant SELECT,insert,update,delete,create,drop
> on javabrain.*
> to scott@'localhost'
> identified by 'tiger';
mysql> grant SELECT,insert,update,delete,create,drop
> on javabrain.*
> to scott@'%'
> identified by 'tiger';
mysql> flush privileges;

또는

mysql> grant all privileges
> on javabrain.* to scott@'%'
> identified by 'tiger';

mysql> grant all privileges
> on javabrain.* to scott@localhost
> identified by 'tiger';
mysql> flush privileges;

scott 사용자를 등록할때 여러가지(3가지) 방법이 있는데 그중 하나를 씀
등록시 반드시 to scott@'localhost'와 to scott@'%'를 둘다 해줘야함
localhost와 %는 접속을 허용하는 hostname인데 localhost를 빼면 다른 시스템에서
network으로만 접근할 수 밖에 없음.
그리고 %란 모든호스트를 의미하기때문에 %를 지정해야지만 다른 시스템에서
network으로 MySQL로 접근가능( mysql -h hostIP또는hostname -u 사용자ID -p )

user생성후 반드시 DB를 reload 해야만 만든 사용자가 접속가능(아래명령어)

# mysqladmin -u root -p reload
또는
mysql> flush privileges;


접속해서 확인하기
# mysql -u scott -p javabrain  --> ㅤDB서버에서login

다른시스템에서
# mysql -h DB서버의IP주소 -u scott -p javabrain


필요한 테이블 만들기(customer,shares,stock)
-주의사항: mysql은 table name에서의 대소문자를 구분함
(이것은 MySQL이 설치된 OS를 따름. 즉 M$계열에서는 구분안함)

필요한 sql문을 파일(maketable.sql-확장자는 무관)로 만든후 shell상에서 아래
명령어 실행

# mysql -u scott -p javabrain < maketable.sql

확인
# mysql -u scott -p javabrain
mysql> show tables;
mysql> select * from customer;
mysql> select * from shares;
mysql> select * from stock;

- JDBC Driver 사용하기
MySQL용 JDBC Driver는 2가지가 있지만 여기서는 mm driver를 사용.

http://www.worldserver.com/mm.mysql/ 에 가서 최신 버전을 download할것
(mm.mysql-2.0.4-bin.jar)

가져온것을 적당한 곳에서 해제.

사용법:

Class.forName("org.gjt.mm.mysql.Driver");
String url="jdbc:mysql://127.0.0.1:3306/javabrain";
Connection conn = DriverManager.getConnection(url,"scott","tiger");



관련 명령어들.

# mysql -u root -p mysql
password:
mysql> select user();               --> 현재 어떤 user권한으로 접속하고 있는지.
mysql> show database;               -->데이터베이스 종류보기
mysql> show tables from mysql;      --> mysql상의 테이블 정보보기
mysql> show columns from customer;  --> customer 테이블 구조보기
mysql> show index from customer;    --> customer테이블의 인덱스보기
mysql> use mysql;                   --> 사용할 database를 변경
(기본적으로 MySQL에는 두개의 database-mysql,test-가 있음.
  mysql은 DBMS관리용 정보, test는 연습용
  그래서 mysql이란 database는 사용시 주의할것)


#########################################
#########################################
##
##   추 가 사 항
##
#########################################
#########################################

javabrain.sql 이라는 파일을 수행 시키면 SL-300을위한 DB를 위한 모든 내용이 자동 설정됨.

사용예)

mysql 서버를 가동시킨후 ( mysqld.exe )
prompt> mysql -u root -p <  javabrain.sql

이러면 아래 사항이 자동 생성됨
database이름  : javabrain
root암호   : javabrain
사용자 id  : scott
암호    : tiger
생성된table들  : customer, shares, stock

가끔씩 user부분이 적용이 안되는 경우에는 DB를 restart시키면 된다.

prompt> mysqladmin -u root -p shutdown   --> DB shutdown
prompt> mysqld

만약 암호를 바꾸고 싶으면  sql script내부에  .... identified by 다음부분이 암호이니
알아서 바꾸면 됨.  단 반드시 암호는 single quotation으로 묶어줄것.

예) 암호를 apple 로 하자면  .... identified by 'apple'


import java.sql.*;

public class MySQLJdbcTest {
   public static void main(String[] args) throws Exception{
      try{
        Class.forName("org.gjt.mm.mysql.Driver").newInstance();
        System.out.println("DriverLoading succeed..");

        String url="jdbc:mysql://127.0.0.1:3306/javabrain";
     //  만약 위의 url로 접속시 한글에 문제가 발생하면 아래 url을 써서 사용하도록 한다.

   //  String url="jdbc:mysql://127.0.0.1:3306/javabrain?useUnicode=true&characterEncoding=euc-kr";
        Connection conn =  DriverManager.getConnection(url,"scott","tiger");
        System.out.println("Connection succeed");
        Statement stmt = conn.createStatement();
        System.out.println("정보추출");
 
        ResultSet rs = stmt.executeQuery("show databases");
       while( rs.next() ) {
         System.out.println(rs.getString(1));
       }
       System.out.println("MySQL 환경 점검 종료");
       rs.close();
       stmt.close();
       conn.close();
      }catch(Exception e){
         System.out.println(e);
      }
    }
}

2003년 3월 작성.
크리에이티브 커먼즈 라이센스
Creative Commons License
2008/03/26 14:23 2008/03/26 14:23
http://www.javapattern.info/trackback/49