2012-09-19

javascript] 숫자만 입력받는 함수


회원으로 가입하거나 할때 유용하게 쓰일수 있는 팁이라서 올린다.[초기값 한글/영문으로 지정하기]<input type="text" name="m_name" style="ime-mode:active;"> //초기값이 한글자판
<input type="text" name="m_id" style="ime-mode:inactive;"> //초기값이 영문자판



[숫자 및 특수문자 허용]
// 숫자만 입력받는다. 특수문자('-','.',...)도 허용한다.
function onlyNumber() {
if((event.keyCode > 31) && (event.keyCode < 45) || (event.keyCode > 57)) {
event.returnValue = false;
}
}

// 숫자만 입력받는다. "-"도 받지않는다.
function onlyNumber2(loc) {
if(/[^0123456789]/g.test(loc.value)) {
alert("숫자가 아닙니다.\n\n0-9의 정수만 허용합니다.");
loc.value = "";
loc.focus();
}
}

사용예제) - 주민번호나 전화번호 경우<input name="jumin2" value="" type="text" size="7" maxlength="7" onKeyPress=onlyNumber() onBlur=onlyNumber2(this);> 

2012-09-17

DBMS/MySQL] Mysql Dump 백업하기 스크립트


안녕하세요. mindline 입니다.

별건 아닌데... 제가 필요에 따라 만들어 쓰는 스크립트입니다.
혹시 도움이 될까 해서 올려 봅니다.

------------ 시작 -----------------

#!/bin/sh

backup_dir="/home/mysqlbackup"
dat=`date +%Y%m%d`

if [ ! -d "$backup_dir/$dat" ];
then
  mkdir $backup_dir/$dat
fi

cd /var/lib/mysql

for dbdir in *
do
  if [ -d $dbdir ];
  then
    mkdir $backup_dir/$dat/$dbdir
    cd $dbdir

    for table in *MYI
    do
      tname=`basename $table .MYI`
      mysqldump -p비밀번호 -uroot $dbdir $tname > $backup_dir/$dat/$dbdir/$tname.dump
    done

    cd ..
    sleep 1
  fi
done



#pastdat=`date --date '7 days ago' +%Y%m%d`
#rm -rf $backup_dir/$pastdat

---------------- 끝 ------------------------

대략 요령껏 디렉토리 경로등은 변경하세여. ^^;

매일 크론에 등록해 놓구 쓰면 되겠져...

제일 밑에 두줄은 계속 쌓이기만 하면 하드가 Full 될테니...
7일일 전의 디렉토리는 지우라는 명령어 입니다.

( rm -rf 조심하세여. 현재 주석 처리 입니다. ^^ )


대략 이렇게 됩니다.
20031127/dbname1/tablename1.dump
20031127/dbname1/tablename2.dump
20031127/dbname2/tablename1.dump
20031127/dbname2/tablename2.dump

:-)


그럼.

DBMS/MySQL]FreeBSD5.3.1R 에서 mysql4.x 설치하기


이글은 FreeBSD 5.3R 에서의 포트시스템으로의 설치를 기본으로 합니다.
1. 디렉토리 이동
  # cd /usr/ports/databases/mysql41-server

--> mysql 버전이 5.x 가 있지만 proftpd포트 설치시 mysql4.x 클라이언트

를 설치하므로 버전을 맞추기 위해 4.x 를 설치하기로 합니다.

  # make install clean WITH_CHARSET=euc_kr BUILD_OPTIMIZED=yes

(
 mysql41-server 의 경우 WITH_CHARSET옵션의 값이 euckr로 변경됨.
 mysql 4.1버전의 경우
 # make install clean WITH_CHARSET=euckr BUILD_OPTIMIZED=yes
)

  # /usr/local/bin/mysql_install_db

==> 처음으로 mysql을 사용하기 전에 시스템 DB를 만들기 위한 스크립트를
실행합니다.

위 명령은 mysql을 설치한 후 반드시 한번만 하시기 바랍니다.



2. 설치 확인 작업

  # /usr/local/bin : mysql바이너리 파일들이 있나 확인

  # /usr/local/etc/rc.d/mysql-server.sh : mysql 기동 스크립트

  # /var/db/mysql : mysql 데이터베이스 파일



3. 데몬 시작및 중지하기

3.1. 시작하기

  # /usr/local/etc/rc.d/mysql-server.sh start 혹은

  /usr/local/bin/mysqld_safe -user=mysql &



3.2 중지하기

  # /usr/local/etc/rc.d/mysql-server.sh stop 혹은

  /usr/local/bin/mysqladmin -u root shutdown



4. mysql 데이터베이스를 사용하기 전에

반드시 루트 암호를 생성하고 사용하시기 바랍니다.

  #/usr/local/bin/mysqladmin -u root password '새로운 비밀번호'

  #/usr/local/bin/mysqladmin -u root -h 호스트명 password '새로운 비밀번호'



5. 데이터베이스 사용하기

  #/usr/local/bin/mysql -u root -p

password :




** 만약 위와같이 작업시 에러발생하는 경우


4번 작업시 에러발생시에는

1. 우선 mysql서버 데몬을 죽인다.

  # kill mysql_pid 혹은

/usr/local/etc/rc.d/mysql-server.sh stop


2. /usr/local/etc/rc.d/mysql-server.sh 파일을 편집해서

========================

편집내용.

  /usr/local/bin/mysqld_safe --user=mysql --datadir=${DB_DIR}
--pid-file=${PIDFILE} --language=korean > /dev/null &

를 다음과 같이 수정합니다 .

  /usr/local/bin/mysqld_safe --user=mysql --datadir=${DB_DIR}
--pid-file=${PIDFILE} --language=korean --skip-grant > /dev/null &


========================



3. mysql서버 데몬을 다시 시작한다.

  # /usr/local/etc/rc.d/mysql-server.sh start



4. 위와같이 하면 권한 테이블을 사용하고 데몬을 띄우게 됩니다.

5. mysql에 접속하여

  # /usr/local/bin/mysql -u root -p

6. root의 암호를 변경합니다.

  mysql> use mysql;

  mysql> select * from user where user = 'root';

  mysql> update user SET password = PASSWORD('newpassword');

7. 권한 테이블을 다시 읽는다.

  mysql> flush privileges;

8. mysql을 종료

  mysql> \q



9. mysql 서버 데몬 죽입니다.

  #/usr/local/etc/rc.d/mysql-server.sh stop



10./usr/local/etc/rc.d/mysql-server.sh 파일을 편집해서

========================
편집내용.

  /usr/local/bin/mysqld_safe --user=mysql --datadir=${DB_DIR}
--pid-file=${PIDFILE} -language=korean --skip-grant > /dev/null &

를 다음과 같이 수정합니다 .

  /usr/local/bin/mysqld_safe --user=mysql --datadir=${DB_DIR}
--pid-file=${PIDFILE} -language=korean > /dev/null &

========================

다시 원상복귀 합니다.



11. mysql 서버를 다시 시작합니다.

  #/usr/local/etc/rc.d/mysql-server.sh start



12. 정상적으로 mysql을 사용가능합니다.

DBMS/MySQL]FreeBSD 5.4R 에서 mysql-server41 설치후 한글 입력 문제


FreeBSD 5.4R에서 ports 에서 mysql-server41 을 설치시

make install clean WITH_CHARSET=euckr로 설치후

한글 입력이 안되는 문제가 발생한다

그런경우 아래와 같이 해당 계정에서 작업을 한다.


///////////////////////////////////////////////////////////////////////////////

MySQL 클라이언트 프로그램(mysql)에서 한글 입력에 문제가 있을 수 있습니다.

mysql은 readline 라이브러리를 사용하므로, 사용자 디렉토리의 .inputrc에

다음 내용을 넣어주면 됩니다.


set meta-flag On

set convert-meta Off

set output-meta On


///////////////////////////////////////////////////////////////////////////////

이글은 최준호님이 답해주셨습니다

DBMS/MySQL] 원격지의 MySQL서버에 접속하기


 쉘 상태에서 원격지의 MySQL 서버에 접속을 하고자 하는 경우
         
 # ./bin/mysql -h 호스트명(혹은 ip주소) -u 계정 -p DB명

 물론 원격지 MySQL서버에 다음과 같이 등록이 되어 있어야 가능합니다.

 mysql> insert into db values ('ip주소', 'user_db', 'user_name', ...);

 mysql> insert into user values ('ip주소', 'user_name', PASSWORD('user_password'));


 위와 같이 등록이 먼저 되어 있어야 하겠지요 ^^

APM 에서 UTF-8 사용하기.(database.sarang.net)의 글


APM 에서 UTF-8 사용하기 입니다.
아래 링크를 클릭하시면 해당 글 목록으로 이동합니다.


DBMS/MySQL] 4.1.x 에서 Default character set 변경하기...



안녕하세요. 신규로 4.1.7버전의 MySQL 를 설치했는데 character set 의 변경이 잘 되지 않아서 질문 올립니다.
아래에 버전 및 시도해본 방법을 적었습니다. 함 확인해보시고요 해결책 알려주시면 감사하겠습니다~

0. 버전
버전 : 4.1.7, source compile 해서 설치 (my.cnf 에서 수정하려고 configure 할때 character set 설정 하지 않았습니다.)

1. 현재 character 정보
mysql> show variables like 'char%';
+--------------------------+----------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/share/mysql/charsets/ |
+--------------------------+----------------------------------------+

2. 변경하려고 시도해본 방법
1) my.cnf 변경
[mysqld] 아래에
default-character-set=euckr
를 추가하고 mysql을 재시작하면 에러가 납니다.
/mysql/var/***.err 에서 에러를 확인하면 아래와 같습니다.
/usr/local/mysql/libexec/mysqld: Character set 'euckr' is not a compiled character set and is not specified in the '/usr/local/mysql/share/mysql/charsets/Index.xml' file

"Character set 'euckr' is not a compiled character set" 이라면 compile할때 euckr 이 빠졌다는 것인가요?
'/usr/local/mysql/share/mysql/charsets/Index.xml' file 에는 euckr 항목이 있습니다.

<charset name="euckr">
<family>Korean</family>
<description>EUC-KR Korean</description>
<alias>euc_kr</alias>
<alias>euc-kr</alias>
<collation name="euckr_korean_ci" id="19" order="Korean">
<flag>primary</flag>
<flag>compiled</flag>
</collation>
<collation name="euckr_bin" id="85">
<flag>binary</flag>
<flag>compiled</flag>
</collation>
</charset>

2) database의 character set을 직접 변경
mysql> ALTER DATABASE tv DEFAULT CHARACTER SET euckr;
ERROR 1115 (42000): Unknown character set: 'euckr'

3) 지원하는 character set 확인
설치한 mysql 서버에서 지원하는 character set을 확인해 보았습니다만 euckr 이 없네요.
mysql> SHOW CHARACTER SET;
+----------+-----------------------------+---------------------+--------+
Charset | Description | Default collation | Maxlen |
+----------+-----------------------------+---------------------+--------+
| dec8 | DEC West European | dec8_swedish_ci | 1 |
| cp850 | DOS West European | cp850_general_ci | 1 |
| hp8 | HP West European | hp8_english_ci | 1 |
| koi8r | KOI8-R Relcom Russian | koi8r_general_ci | 1 |
| latin1 | ISO 8859-1 West European | latin1_swedish_ci | 1 |
| latin2 | ISO 8859-2 Central European | latin2_general_ci | 1 |
| swe7 | 7bit Swedish | swe7_swedish_ci | 1 |
| ascii | US ASCII | ascii_general_ci | 1 |
| hebrew | ISO 8859-8 Hebrew | hebrew_general_ci | 1 |
| koi8u | KOI8-U Ukrainian | koi8u_general_ci | 1 |
| greek | ISO 8859-7 Greek | greek_general_ci | 1 |
| cp1250 | Windows Central European | cp1250_general_ci | 1 |
| latin5 | ISO 8859-9 Turkish | latin5_turkish_ci | 1 |
| armscii8 | ARMSCII-8 Armenian | armscii8_general_ci | 1 |
| utf8 | UTF-8 Unicode | utf8_general_ci | 3 |
| cp866 | DOS Russian | cp866_general_ci | 1 |
| keybcs2 | DOS Kamenicky Czech-Slovak | keybcs2_general_ci | 1 |
| macce | Mac Central European | macce_general_ci | 1 |
| macroman | Mac West European | macroman_general_ci | 1 |
| cp852 | DOS Central European | cp852_general_ci | 1 |
| latin7 | ISO 8859-13 Baltic | latin7_general_ci | 1 |
| cp1251 | Windows Cyrillic | cp1251_general_ci | 1 |
| cp1256 | Windows Arabic | cp1256_general_ci | 1 |
| cp1257 | Windows Baltic | cp1257_general_ci | 1 |
| binary | Binary pseudo charset | binary | 1 |
| geostd8 | GEOSTD8 Georgian | geostd8_general_ci | 1 |
+----------+-----------------------------+---------------------+--------+

1)의 에러메시지에서 처럼 euckr character set 이 compile 되지 않았다는 것 같은데요,
그럼 어떻게 추가할수 있을까요.