Mysql을 Windows에서 서비스 구동 시 에러가 나는 경우 이다. DHCP 할당 IP가 아닌 내부 네트워크 IP로 고정적으로 설정을 해주었을 경우. 위와 같은 에러가 발생 할 수 있다.


Windows 서비스 MySQL55 는 아래 설정 파일을 참고하여 구동 된다.


--defaults-file="C:\ProgramData\MySQL\MySQL Server 5.5\my.ini" 파일을 수정 하자.



// ...


# SERVER SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this
# file.
#
# server_type=3
[mysqld]
bind-address=192.168.xxx.xxx


// ...



bind-address를 현재 내부 IP로 설정 해주고 서비스를 시작 하면 정상적으로 작동 한다.


접속 할 때는 localhost 가 아닌 192.168.xxx.xxx 로 하도록 하자.


'Database' 카테고리의 다른 글

Mysql Table 레코드 복사하기  (0) 2012.12.07
Query에 대한 고찰  (0) 2012.12.07
Mysql Timestamp Column 생성 하기  (0) 2012.12.06
Mysql root 비밀번호 변경하기  (0) 2012.12.03
Oracle 덤프 뜨기  (0) 2012.11.26


http://gradients.glrzad.com/ 사이트로 접속 해보면 그러데이션 효과 색 보정 및 CSS Code를 볼 수 있다.




Ajax 처리시 배열로 전송할 경우도 생길 수 있다. 이런 경우 아래 코드를 참고 하자.



$.ajaxSettings.traditional = true;



위 옵션을 적용하고 배열로 전송을 하면 서버에서 아래와 같은 형태로 받아 볼 수 있다.



public @ResponseBody String testMethod(int[] testArr) {

// process

}



Array 형태로 파라미터를 받을 수 있게 된다.

'Javascript' 카테고리의 다른 글

Array 요소 없애는 함수  (0) 2013.02.05
Javascript 페이지내에서 다수의 스크립트 실행하기  (0) 2012.12.23
jQuery 다수의 Ajax 요청 처리 관련  (2) 2012.11.27
Date 함수 관련  (0) 2012.11.16
jQuery Ajax  (0) 2012.11.09


timestamp column 생성



ALTER TABLE tb_test ADD create_date TIMESTAMP(10)  NOT NULL DEFAULT current_timestamp



default 값으로 현재 시간을 적용 한다.


'Database' 카테고리의 다른 글

Query에 대한 고찰  (0) 2012.12.07
Mysql Windows Can''t connect to MySQL server on 'localhost' (10061)  (0) 2012.12.07
Mysql root 비밀번호 변경하기  (0) 2012.12.03
Oracle 덤프 뜨기  (0) 2012.11.26
count() 에 대해서  (0) 2012.11.16


Java로 유용하게 쓸수있는 Date 함수를 정리 해보았다. 아래의 코드를 참고.


소스



package kr.whitelife.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

/**
 * <p>
 *     2012-12-03 날짜 관련 유틸
 * </p>
 *
 * @author whitelife
 * @see Calendar
 * @see Date
 * @see SimpleDateFormat
 * @see String
 * @see ParseException
 * @since 1.6
 * @version 0.1.1
 */
public class DateUtil {
  
    /**
     * DateFormat 생성
     * @param pattern
     * @return
     */
    private static SimpleDateFormat createSimpleDateFormat(String pattern) {
        if (pattern == null) {
            return new SimpleDateFormat();
        } else {
            return new SimpleDateFormat(pattern, Locale.KOREAN);
        }
    }
   
    /**
     * Calender 생성
     * @param date
     * @return
     */
    private static Calendar createCalender(Date date) {
        Calendar calendar = Calendar.getInstance(Locale.KOREAN);
        calendar.setTime(date);
       
        return calendar;
    }
  
    /**
     * 현재 날짜 문자열 리턴
     * @param pattern
     * @return
     */
    public static String nowDateToString(String pattern) {
        return createSimpleDateFormat(pattern).format(new Date());
    }
  
    /**
     * 날짜 문자열 리턴
     * @param pattern
     * @param date
     * @return
     */
    public static String dateToString(String pattern, Date date) {
        return createSimpleDateFormat(pattern).format(date);
    }
  
    /**
     * 현재 날짜 문자열 리턴 [yyyy-MM-dd]
     * @return
     */
    public static String nowDateToBasicString() {
        return createSimpleDateFormat("yyyy-MM-dd").format(new Date());
    }
  
    /**
     * 날짜 문자열 리턴 [yyyy-MM-dd]
     * @param date
     * @return
     */
    public static String dateToBasicString(Date date) {
        return createSimpleDateFormat("yyyy-MM-dd").format(date);
    }
  
    /**
     * 현재 날짜 문자열 리턴 [yyyyMMdd]
     * @return
     */
    public static String nowDateToBasic2String() {
        return createSimpleDateFormat("yyyyMMdd").format(new Date());
    }
  
    /**
     * 날짜 문자열 리턴 [yyyyMMdd]
     * @param date
     * @return
     */
    public static String dateToBasic2String(Date date) {
        return createSimpleDateFormat("yyyyMMdd").format(date);
    }
  
    /**
     * 문자열 입력 후 날짜 객체 리턴
     * @param pattern
     * @param source
     * @return
     */
    public static Date stringToDate(String pattern, String source) {
        try {
            return createSimpleDateFormat(pattern).parse(source);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return null;
        }
    }
  
    /**
     * 문자열 입력 후 날짜 객체 리턴 [yyyy-MM-dd]
     * @param pattern
     * @param source
     * @return
     */
    public static Date stringToBasicDate(String source) {
        try {
            return createSimpleDateFormat("yyyy-MM-dd").parse(source);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return null;
        }
    }
  
    /**
     * 문자열 입력 후 날짜 객체 리턴 [yyyyMMdd]
     * @param pattern
     * @param source
     * @return
     */
    public static Date stringToBasic2Date(String source) {
        try {
            return createSimpleDateFormat("yyyyMMdd").parse(source);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return null;
        }
    }
  
    /**
     * 이전 년도 구하기 [현재 날짜 기준]
     * @param year
     * @return
     */
    public static Date prevYear(int year) {
        return prevYear(year, new Date());
    }
  
    /**
     * 이전 년도 구하기
     * @param year
     * @param date
     * @return
     */
    public static Date prevYear(int year, Date date) {
        Calendar calendar = createCalender(date);
        calendar.add(Calendar.YEAR, year * -1);
      
        return calendar.getTime();
    }
  
    /**
     * 이후 년도 구하기 [현재 날짜 기준]
     * @param year
     * @return
     */
    public static Date nextYear(int year) {
        return nextYear(year, new Date());
    }
  
    /**
     * 이후 년 구하기
     * @param year
     * @param date
     * @return
     */
    public static Date nextYear(int year, Date date) {
        Calendar calendar = createCalender(date);
        calendar.add(Calendar.YEAR, year);
      
        return calendar.getTime();
    }
  
    /**
     * 이전 달 구하기 [현재 날짜 기준]
     * @param month
     * @return
     */
    public static Date prevMonth(int month) {
        return prevMonth(month, new Date());
    }
  
    /**
     * 이전 달 구하기
     * @param month
     * @param date
     * @return
     */
    public static Date prevMonth(int month, Date date) {
        Calendar calendar = createCalender(date);
        calendar.add(Calendar.MONTH, month * -1);
      
        return calendar.getTime();
    }
  
    /**
     * 이후 달 구하기 [현재 날짜 기준]
     * @param month
     * @return
     */
    public static Date nextMonth(int month) {
        return nextMonth(month, new Date());
    }
  
    /**
     * 이후 달 구하기
     * @param month
     * @param date
     * @return
     */
    public static Date nextMonth(int month, Date date) {
        Calendar calendar = createCalender(date);
        calendar.add(Calendar.MONTH, month);
      
        return calendar.getTime();
    }
  
    /**
     * 이전 날짜 구하기 [현재 날짜 기준]
     * @param day
     * @return
     */
    public static Date prevDay(int day) {
        return prevDay(day, new Date());
    }
  
    /**
     * 이전 날짜 구하기
     * @param day
     * @param date
     * @return
     */
    public static Date prevDay(int day, Date date) {
        Calendar calendar = createCalender(date);
        calendar.add(Calendar.DATE, day * -1);
      
        return calendar.getTime();
    }
  
    /**
     * 이후 날짜 구하기 [현재 날짜 기준]
     * @param day
     * @return
     */
    public static Date nextDay(int day) {
        return nextDay(day, new Date());
    }
  
    /**
     * 이후 날짜 구하기
     * @param day
     * @param date
     * @return
     */
    public static Date nextDay(int day, Date date) {
        Calendar calendar = createCalender(date);
        calendar.add(Calendar.DATE, day);
      
        return calendar.getTime();
    }
  
    /**
     * 이전 시 구하기
     * @param hour
     * @param date
     * @return
     */
    public static Date prevHour(int hour, Date date) {
        Calendar calendar = createCalender(date);
        calendar.add(Calendar.HOUR, hour * -1);
      
        return calendar.getTime();
    }
  
    /**
     * 이후 시 구하기
     * @param hour
     * @param date
     * @return
     */
    public static Date nextHour(int hour, Date date) {
        Calendar calendar = createCalender(date);
        calendar.add(Calendar.HOUR, hour);
      
        return calendar.getTime();
    }
  
    /**
     * 이전 분 구하기
     * @param minute
     * @param date
     * @return
     */
    public static Date prevMinute(int minute, Date date) {
        Calendar calendar = createCalender(date);
        calendar.add(Calendar.MINUTE, minute);
      
        return calendar.getTime();
    }
  
    /**
     * 이후 분 구하기
     * @param minute
     * @param date
     * @return
     */
    public static Date nextMinute(int minute, Date date) {
        Calendar calendar = createCalender(date);
        calendar.add(Calendar.MINUTE, minute);
      
        return calendar.getTime();
    }
  
    /**
     * 이전 초 구하기
     * @param second
     * @param date
     * @return
     */
    public static Date prevSecond(int second, Date date) {
        Calendar calendar = createCalender(date);
        calendar.add(Calendar.SECOND, second);
      
        return calendar.getTime();
    }
  
    /**
     * 이후 초 구하기
     * @param second
     * @param date
     * @return
     */
    public static Date nextSecond(int second, Date date) {
        Calendar calendar = createCalender(date);
        calendar.add(Calendar.SECOND, second);
      
        return calendar.getTime();
    }
   
}



사용 방법



public static void main(String[] args) {
    System.out.println(dateToString("yyyy-MM-dd a HH:mm:ss", DateUtil.nextYear(1)));
    System.out.println(DateUtil.nowDateToBasicString());
    System.out.println(DateUtil.nowDateToBasic2String());
}



결과



2013-12-03 오후 16:17:06
2012-12-03
20121203



다른 함수 들도 위와 같은 방법으로 이용 하면 된다.

좋은 의견이나 개선점은 댓글로 부탁 드려요 !!!



Windows에 해당 경로 C:\Windows\System32\drivers\etc\hosts 파일을 수정 한다.

반드시 관리자 권한으로 수정해야 한다. 아니면 해당 User에게 권한을 부여 한다. 파일을 열어보자.



# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#    127.0.0.1       localhost
#    ::1             localhost



위와 같은 화면이 나타난다. 주석에 달린 설명 대로 추가를 해보겠다.

[IP][\t[Tab]][호스트 명]



127.0.0.1    local.test.co.kr



위와 같이 아래 줄에 추가 한 후 저장 하면 127.0.0.1 대신 local.test.co.kr 로 접속이 되는 것을 확인 할 수 있다.


'Tools' 카테고리의 다른 글

Windows 네트워크 경로 확인하기  (0) 2012.12.08
Eclipse Project Explorer 트리 구조로 보기  (0) 2012.12.07
Windows 고정 IP 설정하기  (0) 2012.11.18
baretail 사용하기  (0) 2012.11.08
Eclipse 최적화 하기  (0) 2012.11.08


Mysql이 설치 되어있다고 가정 한다.



update user set password=password('123456') where user='root'



위의 Query를 작성 한다.

'Database' 카테고리의 다른 글

Mysql Windows Can''t connect to MySQL server on 'localhost' (10061)  (0) 2012.12.07
Mysql Timestamp Column 생성 하기  (0) 2012.12.06
Oracle 덤프 뜨기  (0) 2012.11.26
count() 에 대해서  (0) 2012.11.16
having 사용하기  (0) 2012.11.15


jQuery를 이용하여 다수의 Ajax 요청을 처리하여 결과 값으로 처리할 비지니스가 있는 경우. 문제가 발생 할 수 있다. 기본적으로 Javascript의 Ajax요청은 비동기 요청이 default 값 이기 때문에 ajax 요청은 진행 되는 상황에서도 다음 코드는 실행이 된다. 이와 같은 현상을 피할 수 있는 방법을 소개 한다.


1. setTimeout



//...

setTimeout(function() {

// process

}, 1000);

//...



위와 같은 방법을 이용하는 경우 1번째 인자는 구현하는 함수이고, 2번째 인자는 밀리초 단위로 들어간다. 위 방법은 그다지 추천하는 방법은 아니지만, 구현은 가능하다.


2. ajax 동기요청



//...

$.ajax({

//...

async: false,

//...

});

//...



jQuery를 사용 했는데, async는 기본 값이 true이고 비동기 요청을 하게 된다. 이 값을 false로 적용하게 되면, 동기 요청을 하면서 순차적인 처리가 가능해진다.


※ 참고 사이트: http://jquery.com/


'Javascript' 카테고리의 다른 글

Javascript 페이지내에서 다수의 스크립트 실행하기  (0) 2012.12.23
jQuery로 Ajax 처리시 Array 전송하기  (0) 2012.12.06
Date 함수 관련  (0) 2012.11.16
jQuery Ajax  (0) 2012.11.09
jQuery each  (0) 2012.11.08

+ Recent posts