여기 저기 주차하면서 미션을 수행해보세요~

 

 

 

 

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

MSSQL 에서 ALTER TABLE ALTER COLUMN 이 안될때

 

MSSQL 을 사용하다 컬럼 속성을 변경하고자 하는 경우

 

ALTER TABLE [테이블명] ALTER COLUMN [컬럼명] [속성]

 

의 형태로 변경을 해야 할 경우가 생기곤 합니다.  그러나 해당 명령을 할때, 에러와 함께 변경이 안되는 경우가 있는데요.

 

이는 CONSTRAINT  의 종속성을 가지고 있는 컬럼일 수 있습니다.

 

이때는 해당 FK 를 삭제 후 컬럼을 변경하고 다시 생성을 해줍니다.

 

 

예를들어

 

[test] [int] NULL CONSTRAINT [DF_test]  DEFAULT ((0))

 

이런 형태로 생성된 컬럼을 변경하고자 한다면,

 

ALTER TABLE [테이블명] DROP CONSTRAINT [DF_test];
ALTER TABLE [테이블명] ALTER COLUMN [test] numeric(18,2) ;
ALTER TABLE [테이블명] ADD CONSTRAINT [DF_test]  DEFAULT ((0)) FOR [test];

 

이런식으로 진행을 해주시면 되겠습니다.

 

 

'Database & Server Tip > MSSQL' 카테고리의 다른 글

[MSSQL] MD5 암호화 하기  (0) 2014.07.17
블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

 

[MSSQL] MD5 암호화 하기

 

 

MSSQL 에서 MD5 형태의 암호화를 하는 방법입니다.

 

 

 

 

SELECT
 UPPER (SUBSTRING( master.dbo .fn_varbintohexstr( HashBytes('MD5' , '변경할 데이터')), 3 , 32))

이는 MSSQL2005 버전부터 지원가능한 함수입니다.

 

TEST 라는 테이블의 T1 이라는 컬럼에 MD5 암호화로 적용하려면 UPDATE 문으로 가능합니다.

 

UPDATE TEST SET T1 = UPPER (SUBSTRING( master.dbo .fn_varbintohexstr( HashBytes('MD5' , '1234')), 3 , 32))

'Database & Server Tip > MSSQL' 카테고리의 다른 글

[MSSQL] ALTER TABLE ALTER COLUMN 이 안될때  (0) 2014.07.31
블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

 

ora-12541 : TNS:no listener.

ora-12541 : TNS 리스너가 없습니다.

 

 

오라클의 해당 에러는 오라클 클라이언트가 서버에 접속하고자 할 때 지정된 리스너에 연결을 할 수 없는 경우에

발생하는 에러로서.  몇가지의 상황이 있을 수가 있습니다.

 

1. client 에서의 tnsnames.ora 설정 확인

  

   tnsnames.ora 파일에서 접속하고자 하는 오라클 서버의 설정이 제대로 되어있는지 확인

 

2. 오라클 서버에 리스너 구동 여부 확인

 

 

   lsnrctl status 명령어를 이용하여 상태를 확인 하고 만약 정지되어 있다면

   lsnrctl start 명령을 통해 리스너를 구동

 

3. 서비스 연결 확인

 

   tnsping 명령으로 서버 연결 상태를 확인해 보는경우.

   또는 telnet 명령으로 해당 서버에 대한 오라클 포트가 열려있는지 확인

 

마지막으로 희박한 경우이기는 하나 listener 의 로그파일이 너무 커져서 발생할 수도 있습니다.

 

이때는 , listener/trace 디렉토리의 listener.log 파일을 체크하여 복사해놓고 새로 생성해 주시거나 하시면 됩니다.

 

 

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

 

MySQL 에서 auto_increment 컬럼에 대한 시작값 변경하기

 

MySQL 을 사용하다보면 auto_increment 로 정의된 컬럼에서 새로운 시작값을 주어야 하는 경우가

발생하고는 합니다.

 

예를들어 1000 개의 데이터가 들어있는 테이블에서 10번 이후의 모든 데이터를 삭제 한다고 한다면,

다음에 신규로 등록되는 increment 의 값은 11 이 아닌 1001  이 되게 됩니다.

 

 

 

 

이럴때,  데이터를 삭제한 후 자동증가값을 11 부터 시작하고자 한다면, 다음과 같은 명령으로

auto_increment 의 시작값을 바꾸어 주시면 됩니다.

 

 

alter table 테이블명 auto_increment=시작값;

 

이렇게 명령을 해주시면 끝입니다.

 

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

HTTP POST 여러개의 파라미터를 포함한 request 테스트

 

아파치 httpclient 라이브러리를 이용하여 POST 방식으로 페이지를 호출하는 예제입니다.

 

 

package com.redjava.interfaces.https;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

public class httpClientParams {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		  HttpClient client = new DefaultHttpClient();
		    HttpPost post = new HttpPost("https://www.google.com/accounts/ClientLogin");

		    try {

		      List<namevaluepair> nameValuePairs = new ArrayList<namevaluepair>(1);
		      nameValuePairs.add(new BasicNameValuePair("Email", "jsaclova"));
		      nameValuePairs
		          .add(new BasicNameValuePair("Passwd", "************"));
		      nameValuePairs.add(new BasicNameValuePair("accountType", "GOOGLE"));
		      nameValuePairs.add(new BasicNameValuePair("source", "Google-cURL-Example"));
		      nameValuePairs.add(new BasicNameValuePair("service", "ac2dm"));

		      post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
		      HttpResponse response = client.execute(post);
		      BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

		      String line = "";
		      while ((line = rd.readLine()) != null) {
		        System.out.println(line);
		        if (line.startsWith("Auth=")) {
		          String key = line.substring(5);
		          // Do something with the key
		        }

		      }
		    } catch (IOException e) {
		      e.printStackTrace();
		    }
	  }


}
블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

 

윈도우서버 2008 터미널서버/원격데스크톱연결/mstsc 접속 포트 변경

 

오늘은 윈도우 서버 2008 터미널서버 또는 원격데스크톱 연결 포트를 변경하는 포스팅을 해보겠습니다.

물론 원도위 서버 2008에만 해당하는것이 아니라 윈도우 7 , 비스타 여러가지에 적용 있습니다.

물론 이와 관련한 수많은 포스팅이 있습니다.

원격 원격데스크톱연결에 필요한 터미널서버의 포트를 변경하냐고 하면

일반적으로 터미널 서버의 포트는 3389라고 알려져있기때문에

ip 알고 id 패스워드를 알면 누구나 접속을 있지만

port 변경하게 되면 포트 스캔을 통해서 한번더 검색을 해야된다는 점이 있습니다.

이렇게 하나 결론은 id 패스워드를 분실하거나 누구에게 공개된다면

그시스템의 해킹은 막을 수가 없습니다.

ID 패스워드 분실하지 않도록 하시고 1개월마다 한번씩 변경해주시기 바랍니다.

이제부터 포트 변경 합니다.

 

 

 

제일먼저 우리가 자주 사용하는 원격 데스크톱 연결 입니다.

위의 화면에서 IP 적게 되면 자동으로 3389포트라고 인식하게 됩니다.

그래서 접속IP 입력한결과와 접속IP:3389 동일합니다.

하지만 이렇게 하더라도 먼저 서버나 해당 컴퓨터에 원격데스크톱 연결 허용이 되어있어야겟죠

 

 

 

 

가장 중요합니다. 포트 변경을 하기위해서 기본적으로 원격데스크톱을 허용 해줘야합니다.

이걸 허용 하지 않고 접속하면 해당 서버가 없다고 나옵니다.

윈도우 터미널 서버의 포트를 변경하기 위해서는

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp\PortNumber]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\PortNumber]

변경후 반드시 재부팅을 해야합니다.

윈도우 실행 (윈도우키 +r) 해서 regedit 입력합니다.

레지스트리 편집기가 나오면

 

 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp]

이동합니다.

PortNumber 3389 표시된것을 볼수 있습니다.

PortNumber 더블클릭하면 아래처럼 나옵니다.

 

 

 

 

붉은 네모상자 10진수를 클릭해서 원하는 포트로 변경해주시면 됩니다.

16진수로 변경하실경우는 변경후 10진수 숫자가 나오는것을 잘기억해서

원격 데스크톱 연결시 접속 포트를 적어주시면됩니다.

 

 

 

다음은 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp] 이동합니다.

붉은 네모상자의 10진수를 클릭후 원하는 10진수 포트로 변경해주시면 됩니다.

이제 제부팅을 하면 원격데스트톱으로 연결하는 포트가 변경됩니다.

 

 

 

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

 

Mysql 에서 Database 및 Table 이 사용하는 용량 확인하기.

 

Mysql database 를 사용함에 있어서 현재 사용되어지고 있는 DB 의 사용량과 Table 에 대한 사용량을

알아보는 방법에 대해서 알려드립니다.

 

1. Database 사용량 확인

 

SELECT table_schema "Database Name",
SUM(data_length + index_length) / 1024 / 1024 "Size(MB)"
FROM information_schema.TABLES
GROUP BY table_schema;

 

이와같이 해주시면 전체 데이터베이스의 사용양이 나타나게 되며,

만약, 특정한 Database 에대한 용량만 보고자 한다면 다음과 같이 WHERE 조건을 주시면 됩니다.

 

SELECT table_schema "Database Name",
SUM(data_length + index_length) / 1024 / 1024 "Size(MB)"
FROM information_schema.TABLES
WHERE table_schema = 'yulwon_new'
GROUP BY table_schema;

 

 

 

 

 

2. table 사용량 확인

 

SELECT
concat(table_schema,'.',table_name),
concat(round(table_rows/1000000,2),'M') rows,
concat(round(data_length/(1024*1024*1024),2),'G') DATA,
concat(round(index_length/(1024*1024*1024),2),'G') idx,
concat(round((data_length+index_length)/(1024*1024*1024),2),'G') total_size,
round(index_length/data_length,2) idxfrac
FROM information_schema.TABLES;

 

만약 특정 테이블의 정보만을 원하신다면...


where table_name = '테이블명' ;

 

조건을 붙여주시면 됩니다.

 

SELECT
concat(table_schema,'.',table_name),
concat(round(table_rows/1000000,2),'M') rows,
concat(round(data_length/(1024*1024*1024),2),'G') DATA,
concat(round(index_length/(1024*1024*1024),2),'G') idx,
concat(round((data_length+index_length)/(1024*1024*1024),2),'G') total_size,
round(index_length/data_length,2) idxfrac
FROM information_schema.TABLES
where table_name = '테이블명';

 

이런식입니다.

 

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

 

울트라에디트(UltraEdit)에서 특수문자 사용하기

 

울트라 에디트를 사용하다보면, 찾기나 바꾸기 기능을 이용할 때 특문들 ( ^, 엔터, 탭) 에 대해서 찾기 또는

바꾸기 기능을 이용해야 할 경우가 생기게 되는데요..

 

이때 많이들 놀래거나 긴장을 하실텐데...

 

요때 사용되는 울트라 에디트용 특문 대체 문자를 소개해 드립니다~

 

특수문자 요약:

기호

기능

^^

“^”문자를 검색한다

^s

매크로가 실행될 때 선택된(강조된) 텍스트를 검색한다

^c

매크로가 실행될 때 클립보드의 내용에서 검색한다

^b

페이지를 나눈다

^p

새줄 (CR/LF)을 시작한다 (문단) ( 도스 파일)

^r

새줄(CR만) 을 시작한다 (문단) (맥 파일)

^n

새줄(LF만) 을 시작한다 (문단) (유닉스 파일)

^t

탭 문자를 일치 시킨다

 

예)

[에디터의 내용]

111^222^333^444

 

 

 

 

 

 

[변환 후 결과]

111

222

333

444

 

어때요.. 참쉽죠~~

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,

 

shell Scaript 주요 비교구문

 

 

 

Linux 나 Unix 계열의 OS 에서 쉘 스크립트(shell script)를 생성할 경우 if 문이나 for문 , while 문등의 제어문에서

여러가지의 조건문을 사용할 필요가 있게 된다.

 

이때 참고할만한 몇가지 조건식을 나열함.

 

[문자열 비교]

 

$str1 = $str2  : 양쪽이 같으면 true

$str1 != $str2 : 양쪽이 다르면 true

-n $str : 문자열 길이가 0이 아니면 true

-z $str : 문자열 길이가 0 이면 true

$str1 = "a" -a $str2 = "a" : 양쪽 조건이 전부 true 이면 true (AND)

$str1 = "a" -o $str2 = "a" : 양쪽 조건중에 하나 이상 true 이면 true (OR)

 

[산술 비교]

 

$a -eq $b : 양쪽이 같으면 true

$a -ne $b : 양쪽이 다르면 true

$a -gt $b : $a 가 크다면 true

$a -ge $b : $a 가 크거나 같으면 true

$a -lt $b : $a 가 작으면 true

$a -le $b : $a 가 작거나 같으면 true

 

[파일 비교]

 

-e $file : 파일이 존재하면 true

-d $file : $file 이 디렉토리이면 true

-r $file : 파일에 대한 읽기 권한이 있으면 true

-w $file : 파일에 대한 쓰기 권한이 있으면 true

-x $file : 파일에 대한 실행 권한이 있으면 true

$file1 -nt $file2 : $file1 이 $file2 보다 최근 파일이면 true

$file1 -ot $file2 : $file2 가 $file1 보다 최근 파일이면 true

 

*** 조건식을 사용할때는 스페이스바 한칸씩 띄워야 함.

 

 

 

 

 

 

블로그 이미지

슬픈외로움

개발이 어려워? 모든것엔 답이있다...

,