2015년 10월 28일 수요일

[EtC] OBDC 를 이용한 MSSQL 에서 MySQL Linked Server 로 연결



1. MySQL Connector 다운로드 및 설치
   URL : http://dev.mysql.com/downloads/connector/odbc/


 










설치 과정중 위와 같은 문제 발생시 Visual C++ 런타임 의 설치가 필요한 경우도 있다.


2. DSN 설정







































































































exec sp_addlinkedserver
@server='TEST_SERVER',
@srvproduct='mysql',
@provider='MSDASQL',
@provstr='Driver={MySQL ODBC 5.3 Unicode Driver};DSN=TEST_DSN;server=192.168.0.1;database=TEST_DB;UID=freecatz;PWD=sksmswkftodruTekrh'


위와 같이 연결 후, openquery 를 통하여 테스트 해본다.

SELECT * FROM OPENQUERY(TEST_SERVER, 'SELECT * FROM TEST_TABLE');

만약 쿼리가 안되는 경우 아래와 같이 옵션을 변경 한다.

































































































2015년 10월 20일 화요일

[EtC] Windows 10 기본앱 제거


Windows PowerShell 을 관리자 권한으로 실행

아래의 명령어을 복사하여 Ctrl + V 로 붙여 넣는다.


참고 : 설치된 전체 앱 목록
PS C:\WINDOWS\system32> Get-AppxPackage > c:\appList.txt


1. Groove 음악 제거
PS C:\WINDOWS\system32> Get-AppxPackage *zunemusic* | Remove-AppxPackage

2. 지도(Map) 제거
PS C:\WINDOWS\system32> Get-AppxPackage *windowsmaps* | Remove-AppxPackage

3. 카드게임(솔리테어) 제거
PS C:\WINDOWS\system32> Get-AppxPackage *solitairecollection* | Remove-AppxPackage

4. 영화, TV 제거
PS C:\WINDOWS\system32> Get-AppxPackage *zunevideo* | Remove-AppxPackage

5. 피플 제거
PS C:\WINDOWS\system32> Get-AppxPackage *people* | Remove-AppxPackage

6. Xbox 제거
PS C:\WINDOWS\system32> Get-AppxPackage *xboxapp* | Remove-AppxPackage

7. 윈도우폰 도우미 제거
PS C:\WINDOWS\system32> Get-AppxPackage *windowsphone* | Remove-AppxPackage

8. 스토어 제거
PS C:\WINDOWS\system32> Get-AppxPackage *windowsstore* | Remove-AppxPackage

9. 녹음기 제거
PS C:\WINDOWS\system32> Get-AppxPackage *soundrecorder* | Remove-AppxPackage

10. 카메라 제거
PS C:\WINDOWS\system32> Get-AppxPackage *windowscamera* | Remove-AppxPackage

11. 달력, 메일 제거
PS C:\WINDOWS\system32> Get-AppxPackage *windowscommunicationsapps* | Remove-AppxPackage

12. 시계, 알람 제거
PS C:\WINDOWS\system32> Get-AppxPackage *windowsalarms* | Remove-AppxPackage

13. 3D빌더 제거
PS C:\WINDOWS\system32> Get-AppxPackage Microsoft.3DBuilder* | Remove-AppxPackage

14. 오피스알아보기 제거
PS C:\WINDOWS\system32> Get-AppxPackage Microsoft.MicrosoftOfficeHub* | Remove-AppxPackage

15. 원노트 제거
PS C:\WINDOWS\system32> Get-AppxPackage Microsoft.Office.OneNote* | Remove-AppxPackage

16. SkyPe 제거
PS C:\WINDOWS\system32> Get-AppxPackage Microsoft.SkypeApp* | Remove-AppxPackage

17. 금융 제거
PS C:\WINDOWS\system32> Get-AppxPackage Microsoft.BingFinance* | Remove-AppxPackage

18. 날씨 제거
PS C:\WINDOWS\system32> Get-AppxPackage Microsoft.BingWeather* | Remove-AppxPackage

19. 뉴스 제거
PS C:\WINDOWS\system32> Get-AppxPackage Microsoft.BingNews* | Remove-AppxPackage

20. 스포츠 제거
PS C:\WINDOWS\system32> Get-AppxPackage Microsoft.BingSports* | Remove-AppxPackage

21. 시작 제거(주의)
PS C:\WINDOWS\system32> Get-AppxPackage Microsoft.Getstarted* | Remove-AppxPackage

22. 스캔 제거
PS C:\WINDOWS\system32> Get-AppxPackage Microsoft.WindowsScan* | Remove-AppxPackage

2015년 10월 15일 목요일

[LiNuX] SSH Timeout


# 백업은 선택이 아닌 필수
root@etc-service:~# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.ori

# sshd 환경 설정 파일 수정
root@etc-service:~# vi /etc/ssh/sshd_config

Port 1234
PermitRootLogin no
ClientAliveInterval 60
ClientAliveCountMax 10

위의 붉은색 항목이 없으면 새로 추가 한다.

60초 * 10회 = 60분 동안 클라이언트와 세션 유지

Port  는 ssh 의 포트 번호를 바꾸려고 하는 경우 변경 한다.
PermitRootLogin 는 root 의 ssh 로그인을 막아야 하는 경우 no 값으로 설정 한다.


# sshd 재시작 하여야 반영 된다.
root@etc-service:~# /etc/init.d/sshd restart

[LiNuX] debian hostname 변경


# 호스트네임 확인
root@localhost:~# hostname
localhost

# 호스트네임 임시 변경(재부팅 전까지 유지)
root@localhost:~# hostname <new hostname>

# 호스트네임 변경
root@localhost:~# vi /etc/hostname
localhost

호스트네임 변경 후, 저장 한다.

root@localhost:~# /etc/init.d/hostname.sh

로그아웃 후, 다시 로그인 하여 변경된 호스트네임으로 적용 되었는지 확인.

2015년 8월 7일 금요일

[MySqL] Mysql 10061 Error



root@SVN:~# vi /etc/mysql/my.cnf

bind-address = 127.0.0.1          # 이 부분을 아래와 같이 내부아이피로 변경
bind-address = 192.168.0.1

그리고 나서 mysql 서비스 재시작 후, 접속 테스트

2015년 7월 22일 수요일

[LiNuX] vncserver 이용


root@SVN:~# apt-cache search tightvncserver
tightvncserver - virtual network computing server software
root@SVN:~# apt-get install tightvncserver

root@SVN:~# su - freecatz

freecatz@SVN:~$ vncserver
You will require a password to access your desktops.

Password: 암호는 최대 8자리 까지만 지원
Verify: 암호는 최대 8자리 까지만 지원

freecatz@SVN:~$ vi /home/freecatz/.vnc/xstartup

#!/bin/sh

xrdb $HOME/.Xresources
xsetroot -solid grey
x-terminal-emulator -geometry 1600x900+10+10 -ls -title "$VNCDESKTOP Desktop" &
x-window-manager &
 Fix to make GNOME work
export XKL_XMODMAP_DISABLE=1
/etc/X11/Xsession


VNC Service Script 생성
freecatz@SVN:~$ vi /etc/init.d/vncserver
#!/bin/sh

### BEGIN INIT INFO
# Provides:          vncserver
# Required-Start:    $local_fs
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start/stop vncserver
### END INIT INFO

case "$1" in
  start)
    su freecatz -c "/usr/bin/vncserver -name 'freecatz vnc server' -depth 24 -geometry '1600x900' :1"
    echo "Starting VNC-SERVER for freecatz"
    ;;
  stop)
    su freecatz -c "/usr/bin/vncserver -kill :1"
    echo "Stop VNC-SERVER for freecatz"
    ;;
  *)
    echo 'Usage: /etc/init.d/vncserver {start|stop}'
    exit 1
    ;;
esac
exit 0

* 참고 : 복사 하여 붙여 넣기 할 때 주의 할 것.

root@SVN:~# chmod -x /etc/init.d/vncserver
root@SVN:~# chown freecatz:freecatz /etc/init.d/vncserver
root@SVN:~# chmod 755 /etc/init.d/vncserver
root@SVN:~# update-rc.d vncserver defaults
root@SVN:~# /etc/init.d/vncserver start


클라이언트에서 접속 확인 및 테스트

[LiNuX] crontab 를 이용한 시스템 명령 실행


root@SVN:~# vi /etc/crontab

00 19   * * *   root    poweroff

root@SVN:~# /etc/init.d/cron restart
[ ok ] Restarting periodic command scheduler: cron[....] Stopping periodic command scheduler: cron.
[ ok ] Starting periodic command scheduler: cron.


위와 같이 설정 해 둔 경우 매일 저녁 7시에 시스템을 종료 한다.

2015년 6월 30일 화요일

[MaVeN] install jar file on local repository



C:\> mvn install:install-file -Dfile=test.jar -DgroupId=test.group.id -DartifactId=test12 -Dversion=1.2 -Dpackaging=jar -DgeneratePom=true

2015년 6월 25일 목요일

[DaTaBaSe] Firebird 2.5 사용


Firebird 2.5(이하 'FB') 를 써야 할 일이 생겼다. 인터넷에서 찾은 FB 관련 자료들을 정리해 둔다.


FB 설치가 완료 되면, 콘솔이나 도스창에서 명령어를 사용하기 위해서 설치 한 디렉토리 아래의 bin 디렉토리를 PATH에 등록하여 준다.


FB 설치 후, 가장 먼저 GSEC 모드로 진입 하여 SYSDBA 계정의 비밀번호를 변경해 주어야 한다.

SYSDBA 의 최초 로그인 비밀번호는 masterkey 이다.


SYSDBA 게정으로 GSEC 모드 진입
c:\> GSEC -USER SYSDBA -PASSWORD masterkey


SYSDBA 의 비밀번호 변경
GSEC> MODIFY SYSDBA -PW test1234


GSEC 모드에서 빠져 나온다.
GSEC> QUIT


변경한 비밀번호로 로그인을 한다.
c:\> GSEC -USER SYSDBA -PASSWORD test1234


사용자 추가
GSEC> ADD tester -PW test5678 -FNAME TESTER


사용자 목록
GSEC> DISPLAY
     user name             uid   gid admin     full name
--------------------------------------------------------------------------------
SYSDBA                      0     0                Sql Server Administrator
TESTER                       0     0                TESTER


사용자 삭제
GSEC> DELETE TESTER

GSEC> QUIT





DB 를 생성, 연결,  쿼리 작성 및 실행하기 위해 isql 모드로 진입 한다.
참고 : isql 모드에서는 명령어 마지막에 세미콜론(;) 을 꼭 붙여 준다.

c:\> isql
Use CONNECT or CREATE DATABASE to specify a database


DB 생성
SQL> CREATE DATABASE 'c:\fb-data\test_db.fdb' USER 'tester' PASSWORD 'test5678' DEFAULT CHARACTER SET UTF8;


DB 생성후 꼭 Commit 할 것.
SQL> COMMIT;


생성한 DB에 연결
SQL> CONNECT 'c:\fb-data\test_db.fdb' USER 'tester' PASSWORD 'test5678';
Database: c:\fb-data\test_db.fdb, User: tester


DB 버젼 정보
SQL> SELECT RDB$GET_CONTEXT('SYSTEM','ENGINE_VERSION') FROM RDB$DATABASE;

RDB$GET_CONTEXT
=================
2.5.4


DB 정보 표시
SQL> SHOW DATABASE;
Database: c:\fb-data\test_db.fdb
Owner: TESTER
PAGE_SIZE 4096
Number of DB pages allocated = 196
Sweep interval = 20000
Forced Writes are ON
Transaction - oldest = 135
Transaction - oldest active = 136
Transaction - oldest snapshot = 136
Transaction - Next = 139
ODS = 11.2
Default Character set: UTF8


테이블 생성
SQL> CREATE TABLE TB_TEST (
CON>    IDX INT NOT NULL ,
CON>    NAME VARCHAR(10) NOT NULL,
CON>    REGDATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CON>    PRIMARY KEY (IDX)
CON> );


인덱스 생성
SQL> CREATE INDEX IDX_DF ON TB_TEST (IDX);


주석 추가 : 콘솔의 isql 모드에서는 한글입력이 안됨.
SQL> COMMENT ON DATABASE IS '테스트 용 데이터베이스';
SQL> COMMENT ON TABLE TB_TEST IS '테스트용 테이블';
SQL> COMMENT ON COLUMN TB_TEST.IDX IS '고유순번';


테이블 목록
SQL> SHOW TABLE;
TB_TEST



MySQL 의 auto_increment 와 같은 속성을 만들기 위해서 제네레이터와 트리거를 이용하여야 한다.

제네레이터 생성
SQL> CREATE GENERATOR gen_AutoIDX;


제네레이터 초기화 : 이 단계는 나중에 필수가 아니며, 필요할때 초기화 하도록 한다.
SQL> SET GENERATOR gen_AutoIDX TO 0;


트리거 생성
SQL> SET TERM ^ ;
SQL> CREATE TRIGGER trg_AutoIDX FOR TB_TEST
CON> ACTIVE BEFORE INSERT POSITION 1
CON> AS
CON> BEGIN
CON> IF (NEW.IDX IS NULL) THEN
CON> NEW.IDX = GEN_ID(gen_AutoIDX, 1);
CON> END^
SQL>  SET TERM ; ^


생성된 트리거 목록
SQL> SHOW TRIGGERS;
Table name                       Trigger name                     Invalid
=============================================
TB_TEST                           TRG_AUTOIDX
SQL>



샘플 데이터 입력
SQL> INSERT INTO TB_TEST (NAME)VALUES('mr.kim');
SQL> INSERT INTO TB_TEST (NAME)VALUES('mr.lee');
SQL> INSERT INTO TB_TEST (NAME)VALUES('mr.park');
SQL> INSERT INTO TB_TEST (NAME)VALUES('mr.mun');
SQL> INSERT INTO TB_TEST (NAME)VALUES('mr.yun');
SQL> SELECT * FROM TB_TEST;

[EtC] 이클립스 에서 ...




Using platform encoding (MS949 actually) to copy filtered resources, i.e. build is platform dependent!

에러로그에 위와 같은 내용이 보인다면 pom.xml 을 열고 아래의 내용을 추가 한다.



아래는 복붙용 XML 코드

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>