Showing posts with label linux. Show all posts
Showing posts with label linux. Show all posts

2009-01-12

JDBC 설정

MySQL과 JSP의 연동을 위해서 mysql jdbc를 설정해 보자. 현재 많은 사용자층을 확보하고 있는 MySQL은 쉽고 강력한 성능으로 많은 유저들의 사랑을 받고 있다. 설치에 앞서 먼저 mysql jdbc드라이버를 다운 받는다. 현재 안정버전은 3.0 버전이다. 아래의 다운로드에서 드라이버를 받는다.

MySQL JDBC Download

다운로드 받았으면 리눅스에서 사용 가능 하도록 환경 설정을 해줘야 된다. 환경설정이라고 어렵게 생각할것 없다. 경로만 인식시켜 주면 된다.

[root@localhost]#

[root@localhost]# tar xvfz mysql-connector-java-3.0.8-stable.tar.gz
[root@localhost]# cp mysql-connector-java-3.0.8-stable /usr/local/mysql-jdbc
[root@localhost]# cd /usr/local/mysql-jdbc
[root@localhost]# ls -al

폴더 안에 mysql-connector-java-3.0.8-stable-bin.jar이라는 화일이 보일 것이다. 실제로 사용될 드라이버 화일이다. 이제 mysql jdbc드라이버를 사용하기 위해서 profile에 환경 설정을 해주자.

[root@localhost]#

[root@localhost]# vi /etc/proflie
# MySQLjdbc Config
export CLASSPATH="$CLASSPATH:/usr/local/mysql-jdbc/mysql-connector-java-3.0.8-stable
-bin.jar"(한줄로 정확히 입력해야 된다)

CLASSPATH를 설정해줄때 $CLASSPATH부분을 꼭 써줘야 된다. 안그러면 기존에 설정 되어 있는 CLASSPATH는 설정이 안된다. 이제 변경시킨 profile를 적용을 시키고 테스트를 해보자.

[root@localhost]#

[root@localhost]# source /etc/profile
[root@localhost]# set | grep CLASSPATH
CLASSPATH=.:/usr/local/tomcat/common/lib/servlet.jar:/oracle/product/8.1.7/jdbc/lib/
classes111.jar:/usr/local/mysql-jdbc/mysql-connector-java.jar

위의 설정은 필자의 CLASSPATH설정이다. 기존에 추가 되어있는 부분 마지막에 mysql jdbc드라이버가 설정이 되어있다.

+MySQL JDBC 테스트 #1

이제 MySQL JDBC드라이버가 제대로 설정이 되었는지 접속 테스트를 해보자. 먼저 아래와 같이 입력하면 드라이버가 로딩이 되는지 알 수 있다.

[root@localhost]#

[root@localhost]# javap org.gjt.mm.mysql.Driver
public class org.gjt.mm.mysql.Driver extends com.mysql.jdbc.Driver {
public org.gjt.mm.mysql.Driver() throws java.sql.SQLException;
}

위와 같이 나왔다면 이상이 없는것이다. 만약 설정이 잘못되어 있다면 아래와 같이 에러메시지가 나올 것이다.

[root@localhost]#

[root@localhost]# javap org.gjt.mm.mysql.Driver
Class 'org.gjt.mm.mysql.Driver' not found

에러 메시지가 나오면 CLASSPATH설정을 확인해 보기 바란다.

이제 실제로 테스트를 해보자 jdbc드라이버를 이용한 javamysql의 연동이다.

[root@localhost]#

[root@localhost]# vi jdbc.java
import java.sql.*;
class jdbc {
public static void main(String argv[]) {
try {
Class.forName("org.gjt.mm.mysql.Driver");
System.out.println("jdbc 드라이버 로딩 성공");
} catch (ClassNotFoundException e) {
System.out.println(e.getMessage());
}
try {
String url = "jdbc:mysql://localhost:3306/mysql";
Connection con = DriverManager.getConnection(url,"root","");
System.out.println("mysql 접속 성공");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select user from user where user=
'root'");
System.out.println("Got result:");
while(rs.next()) {
String no= rs.getString(1);
String tblname = rs.getString(1);
System.out.println(" no = " + no);
System.out.println(" tblname= "+ tblname);
}
stmt.close();
con.close();
} catch(java.lang.Exception ex) {
ex.printStackTrace();
}
}
}

위의 소스는 mysql jdbc드라이버를 테스트 해볼수 있는 소스이다. 입력후 컴파일 하자.

[root@localhost]#

[root@localhost]# javac jdbc.java
[root@localhost]# java jdbc
드라이버 로딩 성공
접속 성공
Got result:
no = root
tblname= root
no = root
tblname= root

위와 같이 나오면 정상적으로 연동이 되는것이다.

+MySQL JDBC 테스트 #2

이제 jsp와 연동을 테스트 해보자. 아래와 같이 테스트용 jsp화일을 생성한다.

[root@localhost]#

[root@localhost]# vi mysql.jsp
<%@ page import="java.sql.*"
contentType="text/html;charset=euc-kr"%>
<%
String DB_URL = "jdbc:mysql://localhost:3306/mysql";
String DB_USER = "root";
String DB_PASSWORD= "";
Connection conn;
Statement stmt;
try {
Class.forName("org.gjt.mm.mysql.Driver");
conn = DriverManager.getConnection(DB_URL, DB_USER,
DB_PASSWORD);
stmt = conn.createStatement();
conn.close();
out.println("MySQL 연결 성공");
} catch(Exception e)
{out.println(e);}
%>

위와 같이 입력을 하고 웹에서 확인해 보자. 확인을 위해서는 물론 tomcatresin같은 프로그램이 Apache와 연동이 되어있어야 한다.

웹상에서 확인을 해보면 "Mysql 연결 성공"이라는 글자가 보일 것이다.

+MySQL JDBC 트러블 슈팅

정상적으로 연결에 성공하면 좋지만 tomcat 4버전부터 연동하는데 조금 어려움이 있다. 정상적으로 CLASSPATH도 잡혀있고 java와의 연동도 되지만 jsp와의 연동이 잘 안될때가 많았다. 이럴때는 다음과 같이 링크를 걸어주기 바란다.

[root@localhost]#

[root@localhost]# cd /usr/local/tomcat/common/lib
[root@localhost]# ln -s /usr/local/mysql-jdbc/mysql-connector-java-3.0.8-stable-
bin.jar /usr/local/tomcat/common/lib/mysql-connector-java-3.0.8-stable-bin.jar

이렇게 링크를 걸어주면 tomcat환경에서 jdbc의 연동이 가능할것이다.


2009-01-09

Fedora에서 java jdk 업데이트

우선 bin 으로 java 다운받아서~ (jdk 파일의 이름을 여기선 편의상 jdk로 함)
# chmod 755 jdk.bin
# ./jdk
# mv jdk /usr/local/


패스잡아주고~
# vi
/etc/profile
JAVA_HOME=/usr/java/jdk
CLASSPATH=/usr/java/jdk
CLASSPATH=$CLASSPATH:$JAVA_HOME/jre/lib
PATH=$PATH:$JAVA_HOME/bin:$HOME/bin:$JAVA_HOME:
export PATH JAVA_HOME CLASSPATH
# source /etc/profile

기존의 icedTea등의 gij 버젼에서 새로 깐걸로 교체 ㄱㄱㄱㄱ
# alternatives --install /usr/bin/java java /usr/java/jdk/bin/java 2
# alternatives --config java
*화면이 나오면 원하는 버젼 선택

2008-10-14

delete RSA Host key

/root/.ssh/known_hosts
위 파일의 해당 호스트를 제거 해 준다

2008-10-02

Linux , 2차 DNS 설치 가이드

*본 메뉴얼은 2차(slave) DNS의 설정법입니다*
*2차(slave) DNS 설정은 1차 DNS설정을 마무리 한 뒤 를 설정 해 주세요*

* 여기에서는 1차 dns의 ip를 1.2.3.4로, 2차의 ip를 1.2.3.5로 가정한다

네임서버는

1차네임서버의 내용을 주기적으로 접속.. 업뎃

1차네임서버의 비정상 운영 및 실패 때 네임서버 임무 수행

보통 1차네임서버와 다른 네트워크에 위치(효율적인 서버 운영)

2차네임서버를 설정하기 위해서는 1차네임서버의 부트파일(named.conf)파일 및 zone파일을 수정해야한다.


1차네임서버에서의 설정

0. allow-transfer옵션 추가

->

매스터의 /var/named/chroot/etc/named.conf 파일 수정

options {
directory "/var/named";
allow-transfer{ 1.2.3.5; }; // 옵션에서 2nd DNS ip를 설정한다
};


zone "xyz.kr" IN {
type master; //type을 master로 정의한다
file "xyz.kr.zone";
allow-update { none; };
allow-transfer{ 1.2.3.5; }; //각 zone 에도 2nd DNS ip를 설정한다
};

//zone "." 에 대해서는 예외적으로 allow-transfer를 추가하지 않는다.
zone "." IN {
type hint;
file "named.ca";
};

.
.
후략

2차 네임서버에서의 설정

2.1. 다음과 같이 2차 DNS를 위한 zone지정 부분을 만들수 있다
슬레이브의 /var/named/chroot/etc/named.conf 파일 수정

(팁을 추가하자면 master의 named.conf를 복사해와서 수정하면 master - slave간 설정 오류를 방지 할 수 있을 것이다.)

options {
directory "/var/named";
};


zone "xyz.kr" IN {
type slave; //type을 slave로 정의한다
file "xyz.kr.zone";
masters {1.2.3.4;};
};

//슬레이브 역시 zone "." 에 대해서는 예외적으로 옵션을 추가하지 않는다.

zone "." IN {
type hint;
file "named.ca";
};
.
.
후략

2.2 slave 내 named 디먼의 권한 설정
#cd /var/named/chroot/var
#chmod g+w named

3. 결과 확인
3.1 실행
슬레이브에서.....
# service named restart
(slave의 named 서비스를 재시작하면 slave는 master의 zone 파일을 받아온다.)
# cd /var/named/chroot/var/named
# vi xxx.zone (master와 동일한 일련번호를 갖는 zone 파일인지 확인한다.)

3.2 로그 보기
위에서 이상이 생긴다면
#
tail /var/log/messages 를 통하여 에러 로그를 확인하자

3.3 permission 에러 발생 시
위의 '2.2'를 제대로 수행하였는지 확인한다.

3.4 selinux 설정 변경 (selinux 때문에 에러가 날 경우)
# vi /etc/sysconfig/selinux
vi 창에서
SELINUX=enforcing 을
SELINUX=Permissive 로 변경
저장 후 시스템 재부팅하고
위의 3.1을 재확인한다.


Linux , 1차 DNS 설치 가이드

*본 메뉴얼은 1차(master) DNS의 설정법입니다*
*2차(slave) DNS 설정은 본 1차 DNS설정을 마무리 한 뒤 작업 해 주세요

1.DNS Server 구축을 위한 RPM Package
bind (Berkely Internet Name Daemon) 네임서버를 위한 서버 데몬
bind-libs-version.rpm
bind-version.rpm
bind-libbind-devel-version.rpm
bind-devel-version.rpm
bind-chroot-version.rpm
bind-utils-version.rpm
bind-sdb-version.rpm

DNS Server RPM Package확인 명령
rpm -qa | grep bind

DNS Server RPM Package설치 명령
rpm -Uvh bind-Package명.rpm

DNS Server RPM Package삭제 명령
rpm -e bind-package명

2. bind 디렉토리 허가권 변경
chmod 755 /var/named
chmod -R 775 /var/named/chroot/
chmod 777 /var/named/chroot/var/named/

3.설정 파일 찾아 복사
fedora6 bind 설치시 /etc/named.conf, named.zomed 파일 생성 되지 않음
/etc/named.conf 파일은 DNS server의 주 설정 파일이다.

named.conf 파일을 검색 한다.
find / -name named.conf
/usr/share/doc/bind-9.3.4/sample/etc/named.conf

경로 변경
cd /usr/share/doc/bind-9.3.4/sample/etc/

DNS Server를 설정하기 위한 설정파일의 복사 와 허가권을 변경한다.
설정파일을 파일 복사

cp {named.conf,named.rfc1912.zones} /var/named/chroot/etc/

복사한 경로로 이동한다.
cd /var/named/chroot/etc/

허가권 변경
chmod 640 {named.conf,named.rfc1912.zones}

named 데몬이 사용할수 있도록 소유자와 소유그룹 변경
chown named.named {named.conf,named.rfc1912.zones}

4. Zone 파일
fedora6 에서 DNS의 핵심 설정 파일인 zone 생성되지 않는다.

zone파일을 검색한다.
find / -name *zone
/usr/share/doc/bind-9.3.4/sample/var/named/localhost.zone
/usr/share/doc/bind-9.3.4/sample/var/named/localdomain.zone

해당 경로 이동
cd /usr/share/doc/bind-9.3.4/sample/var/named/

zone 파일 복사
기존의 dns 서버의 정보를 가져올 시 기존 서버의 '/var/named/chroot/var/named/'내 zone 파일들을 새 dns의 동일 디렉토리에 붙여넣는다

경로이동
cd /var/named/chroot/var/named

허가권 병견
for i in $(find . -type f -gid 0);
> do
> chmod 640 $i;
> done

named 데몬이 사용할수 있도록 소유자와 소유그룹 변경
for i in $(find . -type f -gid 0);
> do
> chown named.named $i;
> done

5.named.conf
(본 파트는 기존 dns 서버의 /var/named/chroot/etc/named.conf를 가져와 새 dns 의 동일 위치에 붙여 넣는다.
만약 파일이 준비되지 않을경우 예제는 아래와 같은 예제를 이용한다.)

named.conf 파일 설정

named.conf파일에서 사용할 ddns-key를 미리 만들 놓는다.
dns-keygen
hOFwqc93GwmOXJlSBEGcqc7mqKMqTftU6Vy1aPzVEDqJKHe8UuAmGdsbZF6t


경로 이동
cd /var/named/chroot/etc/

named.conf설정파일 vi로 열어서 수정한다.
vi named.conf

options {
directory "/var/named";
};


zone "xyz.kr" IN {
type master;
file "xyz.kr.zone";
allow-update { none; };
};

zone "." IN {
type hint;
file "named.ca";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };

zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};

zone "3.3.1.in-addr.arpa" IN {//ip 대역이 1.2.3.x 라면 3.2.1 로 입력한다
type master;
file "3.2.1.in-addr.arp.broadcast";
allow-update { none; };
};


6 .네임서버 등록 및 서비스 시작
네임서버등록및 서비스 시작
네임 서버를 등록 해준다.
vi /etc/resolv.conf
nameserver x.x.x.x
(x.x.x.x는 해당 ip)

서비스 network 제시작 해준다.
service network restart

네임서버를 시작 해준다.
service named start

7. DNS 작동 확인
DNS Server 작동을 확인한다.
nslookup ns.example.com

nslookup http://www.example.com/

nslookup example.com

nslookup -type=mx example.com

nslookup x.x.x.x

8. DNS 주소의 설정 및 변경

/var/named/chroot/var/named 의 zone 파일들을 vi 등을 통하여 확인하면 다음과 같다.


*/var/named/chroot/var/named/xyz.kr의 예 (2008년 02월 11일 버젼)*

$TTL 43200
@ IN SOA ns.xyz.kr. root.xyz.kr. (
2019135607
30000
5000
1234567
43200 )
IN NS ns.xyz.kr.
ns IN A 1.2.3.4
$ORIGIN re.kr.
jup IN A 1.2.3.11
//
ip 1.2.3.11의 머신에 jup.xyz.kr 을 매핑시키려면 jup IN A 1.2.3.11 이런식으로 먹여준다
k0177 IN A 1.2.3.12
www IN A 1.2.3.21
IN MX 10 1.2.3.21
bbakku IN CNAME jup.xyz.kr.


3라인의 2008021102 는 시리얼 넘버 : 새롭게 dns 목록의 정보가 갱신될때마다 바꿔준다
NS 컬럼의 값을 CNAME으로 지정하면 이미 도메인이 지정 된 머신에 추가적으로 도메인을 부여 할 수 있다
(단, 도메인 네임을 쓸때는 마지막에 '.'을 붙여준다 ex>"xxx.xyz.kr.")

작업이 완료되면 위의 6,7 과정을 통해 dns를 재실행하고 설정결과를 확인해 본다


2008-09-29

Generate Crypt password

# htpasswd -bc sampleFile.txt UserAccount Password

2008-08-29

access Ext format storage media from windows environment
download : http://www.fs-driver.org/

this install file is verry simple and usefull for windows - linux users

basically windows dosent support ext* type
when u wanna access to ext* format media by windows pc,
you setup this file into your windows pc, you can use ext format media system

2008-08-27

apache 2.0 <-> tomcat connect

apache2.0 이상 버전에서만 지원됨. apache와 tomcat의 deamon은 우선적으로 꺼둬야 한다
1. /etc/httpd/conf.d/proxy_ajp.conf 파일을 연다
2. 맨마지막 라인에 다음의 커맨드를 추가한다. RewriteEngine On RewriteCond %{PATH_INFO} .jsp [OR] RewriteCond %{PATH_INFO} ^/* RewriteRule (.*) ajp://localhost:8009$1 [P]
3. 저장하고 빠져나온다.
4. httpd.conf 에서 LoadModule proxy_module modules/mod_proxy.so 라인의 주석을 제거한다.
5. httpd 데몬을 재시작한다.
6. tomcat 실행 후 apache를 실행한다

2008-08-22



Fedora 9 Linux on iMac G3

몇번 시행 착오 끝에 맥에 페도라를 깔긴 했는데....
에이씨, 매캔토시 이런 꼬물딱지

LINUX vs WINDOWS basic commands


show list ls / dir
make directory mkdir / mkdir , md
delete dirctory rmdir / rmdir , rd
show directory tree ls -R / tree
delete file rm / del , erase
copy file cp / copy
move file mv / move
change name mv / rename
change directory cd / cd
show current directory pwd / cd
clear screen clear / cls
command anlaysis sh, csh, bash / command.com
show file cat / type
help, manual man / help
exit exit / exit
thime date / time
echo echo / echo
set path set,env / set
show path echo $PATH / path
o/s version uname -a / ver
show user information finger / fingerping ping / ping
routing table route -n / route print
domain name server query tool nslookup / lookup
telnet telnet / telnetftp ftp / ftp네트work path trace traceroute / tracert
find string in file find / find
find string in file grep / findstr
list more / more
look differences with two files diff / fc, comp
line editor ed / edlin
align sort / sort
copy with under directory cp -R / xcopy
file properties lsattr / attrib
pushd pushd / pushd
move to pushd dirctory popd / pupd
hide file mv file .file / ATTRIB +h or -h
compress tar , zip / pkzip
show process inform. ps, top / taskmgr
host name hostname / hostname
scheduling at, cron / at
kill process kill , killall / tskill
shutdown shutdown, halt, init 0 / shutdown
file system mke2fs / format
show ip, interface ifconfig / ipconfig
fdisk fdisk / fdisk
check disk fsck / chkdsk
show free memory free, top / mem
scandisk fsck, debugfs / scandisk
print file lpr / print
show prints que lpq / print
start gui environment startx / win