2014년 8월 22일 금요일

mysql 에러 라인 출력.

mysql dump를 복구 하는데, 에러가 남.

근데, 어디서 에러가 나는 지 라인이 안나옴.

--debug  옵션을 주자.
mysql  --debug  database < database.sql

근데 에러남.

ERROR: Option 'debug' used, but is disabled

재컴파일 해야 된다고 함.
./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --with-charset=euckr --with-debug

mysql 4.1.22 버젼 이었음.

tar 압축 해제시 에러

tar 압축해제시 파일명에 특수문자가 있으면 에러가 남.

[root@backup]# tar zxvfp mysql_14-07-22_3\:48.tgz
tar (child): 원격 셸을 실행할 수 없습니다: 그런 파일이나 디렉터리가 없습니다
tar (child): mysql_14-07-22_3\:48.tgz: Cannot open: 입력/출력 오류
tar (child): Error is not recoverable: exiting now

gzip: stdin: unexpected end of file
tar: Child returned status 2
tar: Error is not recoverable: exiting now

 
해당 파일을 특수문자 없이 변경후 압축해제.
mv mysql_14-07-22_3\:48.tgz  mysql.tgz

2014년 8월 19일 화요일

mysql 4.0 to 5.1 업그레이드

frm 파일 자체를 옮겨서 시도.
실패.

mysqldump 로 시도.
mysqldump -u root-ppass -e --all-databases > DB_ALL.sql

아래와 같은 오류 발생.
ERROR 1064 (42000) at line 250: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IN smallint(6) unsigned NOT NULL default '0',
  OUT smallint(6) unsigned NOT NUL' at line 18

정상적인 쿼리이나, IN 필드명이 mysql에서 사용하는 명령어라서 에러가 발생하는 것으로 보임.

테스트로 해당 테이블 필드를 모두 '로 감싸고 실행 했더니, 정상적으로 실행됨.

필드명를 '(따옴표)로 감싸줄 필요가 있음.

--quote-names 추가.
mysqldump -u kim01 -pwjqthr01 --opt --quick --quote-names --all-databases > DB_ALL.sql

결론.
-  mysql 간의 이동이라면 --opt 옵션를 사용하자. 복구 시간이 엄청 단축된다.
- --quote-names 를 사용하자.

참조 : http://start.goodtime.co.kr/2013/03/mysqldump-sql-%ED%98%B8%ED%99%98%EC%84%B1-%EB%86%92%EC%9D%B4%EA%B8%B0/

pid 값으로 강제 종료 스크립트.

service mysqld stop으로 mysql이 죽지를 않는다.

pkill mysqld 도 안 먹는다.

killall mysqld 도 안 먹는 다.

kill -9 pid 로는 먹는다.

근데 전부 다 죽여줘야 한다.

스크립트를 찾았다. 역시 있었다.
#!/bin/bash

[ -z "$1" ] && echo "Usage : Input Process .......... Please [scriptFileName ProcessName]" && exit

process_id=`ps -ax | grep "$1" | grep -vw "grep" | grep -vw $$ | awk '{print $1}'`

if [ -z "$process_id" ];then
echo "+-------------------------------------------------------------+"
echo "Not Found Process (입력하신 프로세스를 찾지 못했습니다.) ...... Done"
echo "+-------------------------------------------------------------+"
exit
else
process_id_number=`ps -ax | grep "$1" | grep -vw "grep" | grep -vw $$ | awk '{print $1}'`

for i in ${process_id_number} ;do
kill -9 $i &> /dev/null
printf "%-40s %-s\n" "$i PID Killed" "$(echo -ne "[ \\033[01;32m OK \\033[0m ]")"
done
sleep 2;
echo "+-------------------------------------------------------------+"
echo "Process Kill OK (프로세스가 강제적으로 종료 되었습니다.) ...... Done"
echo "+-------------------------------------------------------------+"
fi

출처

2014년 8월 14일 목요일

sftp 접속 안되는 현상.

sftp 접속시 접속이 제대로 안된다.

에러메시지도 없다. 그냥 안된다.

확인 결과는 ssh 로 접속 할 때 아래처럼 에러메시지가 나오는 데, 그냥 무시하고 사용하고

있었다.
-bash: /usr/etc/jfbterm_profile: 그런 파일이나 디렉토리가 없음

ssh 는 에러메시지가 나와도 제대로 접속이 되지만, sftp 는 에러메시지가 나오면 제대로 되

지 않는다.

2014년 8월 13일 수요일

apache 2.0.x 버젼 startssl 자동.

apache 2.2.x 버젼 이상이 아닌경우 ssl 적용 아파치 실행은
./apachectl startssl

위처럼 startssl 로 실행해야 ssl 이 적용된 아파치가 실행된다.



그냥 start 만으로 ssl 이 실행되도록 스크립트를 변경하자.
vim /usr/bin/apachectl

...
case $ARGV in
start)
    $HTTPD -k start -DSSL
    ERROR=$?
    ;;
stop|restart|graceful)
    $HTTPD -k $ARGV
    ERROR=$?
    ;;
startssl|sslstart|start-SSL)
    $HTTPD -k start -DSSL
    ERROR=$?
    ;;
configtest)
    $HTTPD -t
    ERROR=$?
...



start 인수가 들어오면 원래는 $HTTPD -k $ARGV를 실행 하게끔 되어 있지만,
따로 빼내어 $HTTPD -k start -DSSL 를 실행하도록 수정 하였다.

2014년 8월 12일 화요일

oracle sql developer 소켓 에서 읽을 데이터 가 없습니다

오라클 11g express 설치.

sql developer로 접속시 소켓 에서 읽을 데이터 가 없습니다.
(GLOBAL_DBNAME = XE)

위 코드 추가하니 접속 성공

아래는 전체 listener.ora 내용
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = XE)
(SID_NAME = XE)
(ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521))
)
)

DEFAULT_SERVICE_LISTENER = (XE)