목록데이타베이스 (74)
세이박스
테이블에서 보통 특정 컬럼에 auto_increment 처리해서 자동으로 증가하게 할 경우 중간에 값이 삭제 되었을때 예로 3번째 게시글이 삭제 될 경우 1, 2, 4, 5, 6 -> 처럼 3이 빠진 결과를 받게 되어 리스트에 번호로 사용하기 어럽다. 따라서, 임의로 번호를 붙여서 받아 오는 방법을 살펴 보자 set @i := 0; select (@i := @i + 1) as num, * from board; 첫줄은 초기값이나 1부터 출력 되게 하려면 0을 입력 해두면 된다.
MySQL 설치하면서 비번을 잘못 입력(오타)하거나 기존 root 개정을 잊어 버린경우 다시 설치 하지 않고 비번만 변경할수 있습니다. 기존 MySQL 프로세스 종료하고 안전모드로 접속한후에 개정 테이블(user)에서 root 패스워드를 변경하는 방법입니다. # MySQL 프로세스 죽이기 /etc/init.d/mysqld stop killall mysqld # MySQL 안전모드 접속후 root 비번 변경 cd /usr/local/mysql/bin ./mysqld_safe --skip-grant & use mysql; update user set password=password('비밀번호') where user='root'; FLUSH PRIVILEGES; exit; # 접속확인 mysql -uroot ..
문자모아 솔루션 설치후 ./emma -a -d 실행 했더니 다음과 같은 MySQL 오류가 나타난다. Client does not support authentication protocol requested by server; consider upgrading MySQL client 오류 메시지를 보면 대략 client 요청이 잘못된 규칙이니 클라이언트(즉, emma)에서 요청 규칙을 업그레이드(수정)해라 대략 그런 내용입니다. 이유는 문자모아 SMS 솔루션은 MySQL 4.0 환경으로 만들어 졌지만 설치한 MySQL은 5.x 버전이라 개정 접속시 password 오류가 발생 하는 것이었다. 따라서, 별도의 개정을 추가 한뒤 password만 old_password로 지정 해주면 완료! 우선 기본 설정 방법..
Connecting DB : File '/usr/local/mysql/share/mysql/charsets/?.conf' not found (Errcode: 2) Character set '#192' is not a compiled character set and is not specified in the '/usr/local/mysql/share/mysql/charsets/Index' file PHP + MySQL 연동시 자주 발생하는 오류로써 MySQL에 문자셋 설정 오류 입니다. 오류 메시지 내용만 보면 ?.conf 문자셋 파일이 없다 그런 내용입니다. 해결 방법을 찾아서 이것저것 해보았지만 해결되지 않더군요. 그래서 오류 메시지가 알려준데로 MySQL에서 이용하는 문자셋중 latin1.xml 파일..
Aapache 2.x, PHP 5.x, MySQL 5.x 설치후 서버 이전을 끝내고 사이트 접속해보니 한글이 모두 ㅁㅁㅁ 특수기호들로 깨져 버리더군요. 원인을 알아 보니 mysql 기본 설치시 기본 문자셋이 utf8이 아니라서 생긴 문제 이더군요. 웹소스는 utf8 이며 기존 DB 자료 역시 utf8인데 mysql 기본 문자셋은 다른 문자로 되어 있어서 생긴 문제 였습니다. 다행이도 해결 방법이 mysql 다시 설치 하는 것이 아니라 /etc/my.cnf MySQL 설정 파일만 수정해 주면되었습니다. 자신의 기본 문자셋이 어떻게 되어 있는지 확인 해 보실려면 mysql 접속후 다음과 같이 확인 해 보세요! mysql> SHOW VARIABLES LIKE 'character_set%'; +---------..
어느날 갑자기 MySQL 테이블 하나를 읽을려고 할때 다음과 같은 메시지가 나타날 경우 SQL Error: Can't open file: 'sessions.MYI'. (errno: 145) 테이블이 오류가 난것입니다. 원인은 하나의 테이블에 지속적으로 접속자가 너무 많이 connection이 된 경우 혹은 MySQL 기록중에 DB서버가 강제 종료 혹은 리부팅 되는 경우 깨지는 경우가 종종 발생 합니다. 이처럼 비정상적으로 종료된 테이블인 경우 마지막 처리 과정을 복구해서 정상 동작 하도록 하는 명령어가 있습니다. 먼저 해당 테이블 DB에 접속합니다. mysql -u아이디 -p db이름 비번 : repair table tablename; 입력 혹은 그냥 엔터 또는 간단하게 한줄로 mysql -u아이디 -p..
SQL 2000 Server 서비스 팩3,4 설치시 오류 대처방법 스크립트 실행 중 오류 발생 '80sp1-tools.sql (1)' 1. 쿼리분석기로 SQL Server 에 접속한다. 2. DBCC CHECKDB('dbname', NOINDEX) 로 지정한 데이터베이스에서 모든 개체의 할당과 구조적 무결성을 검사한다. NOINDEX - 시스템 테이블이 아닌 테이블의 클러스터되지 않은 인덱스를 검사하지 않도록 지정한다. NOINDEX는 사용자 정의 테이블의 클러스터되지 않은 인덱스를 검사하지 않으므로 전체 실행 시간이 줄어든다. DBCC CHECKDB에서 모든 시스템 테이블 인덱스를 검사하므로 NOINDEX는 시스템 테이블에 어떤 영향도 주지 않는다. -----------------------------..
Database Server 를 재설치 할 일은 종종 있는 일이다. 재설치할때 대부분 MDF, LDF 파일을 다른 곳에다가 백업 해두고 재 설치후 Attach 를 통해서 쉽게 같다 붙이면 예전 상태로 사용가능하다. 주의 해야할 것은 Attach 되는 MDF 가 SQL의 버전을 탄다는 것이다. 경험 한 것은 MS-SQL 2000으로 사용한 MDF 파일을 잠시 해당 서버가 복구해야할 필요가 있어서 임시로 MS-SQL 2005 서버에 Attach 시켜서 사용했다. 복구가 끝나고 난뒤에 다시 MS-SQL 2000 에 Attach 를 시키려고 하니 Error 602: Could not find row in sysindexes for database ID 9, object ID 1, index ID 1. Run D..
우체국 사업 본부 사이트인 koreapost.go.kr 에서 제공하는 우편번호 파일을 엑셀로 받아서 DB에 저장 할 수 있도록 insert 문으로 벼경 하였습니다. http://www.koreapost.go.kr/woopuns/domestic_post3_3.jsp?sc_displayflag=true 위 URL로 직접 가셔서 사용하고자 하는 용도에 맞게 이용하시면 됩니다. 제가 만든 쿼리는 제 사이트에 맞게 받은것으로 자신의 사이트에 맞는 필드로 변경해서 이용하시기 바랍니다. 우편번호는 2009년 2월 23일자 현재 최신 자료 입니다. [출처] 유포유 - http://www.uforu.net/bbs/board.php?bo_table=asp&wr_id=24
질문. MSSQL 2000처럼 서비스 관리자 없나요? 웹어플리케이션이랑 같이 구동하려는데 ODBC 설정하려해도 안되고.. 위 질문 처럼 MSSQL2000 이용자가 MSSQL2005로 이동하면서 어럽게 느끼는 부분이다. 1. MSSQL 2000처럼 서비스 관리자 없나요? MSSQL2000 이용시 우측 하단 트레이바에 MSSQL 서비스 관리자를 볼 수 있었다. 서비스를 중지하고 시작하고를 편하게 컨트롤 할 수 있었습니다. MSSQL2005 에서는 시작 > 프로그램 > Microsoft SQL Server 2005 > 구성도구> SQL Server Configuration Manager 를 열어서 서비스 관리를 하실수있습니다. 하지만 서비스 관리자가 편리하게 느끼는 분을 위해 별도의 프로그램 제공합니다. SQ..
1 개요... 3 1.1 SQL Query. 3 1.2 DML & DLL. 3 1.3 Metabata. 3 1.4 웹 어플리케이션... 4 1.5 일반적인 취약한 로그인 쿼리... 4 2 SQL Injection 테스트 방법론... 5 1) 입력 값 검증... 5 2) 정보 수집... 6 3) 1=1 Attacks. 8 5) OS Interaction. 12 6) OS 명령 프롬프트... 15 7) 확장된 효과... 15 3 회피 기술... 17 3.1 개요.. 17 3.2 IDS “signature” 우회... 17 3.3 입력 값 검증 우회 하기... 18 3.4 회피와 우회... 18 4 SQL Injection 대응 방안... 20 4.1 개요... 20 4.2 탐지 및 제한시키기... 20 4...
MSSQL2000을 이용하다가 MSSQL2005로 업그레이드 하고 ASP소스는 DB가 이전에 웹서버와 분리 되어 있어서 DB에 접속하는 IP가 고정으로 되어 있었다. 그런데, 다음과 같은 오류가 발생하면서 DB에 접속할 수 없다는 오류가 나는 것이다. [DBNETLIB][ConnectionOpen (Connect()).]SQL Server가 없거나 액세스할 수 없습니다. sql 재시작해도 안되는것이었다. 새로 설치한 서버는 웹과 DB를 하나의 서버에 설치 했기에 혹시나해서 sql 연결구문에서 ip를 127.0.0.1 로 바꿨더니 접속이 된다. OTL 헐.. MSSQL2008이 나왔는데 MSSQL2005를 붙잡고 고생하고 있다. ㅋㅋ [출처] 유포유 - http://www.uforu.net/bbs/boar..
MYSQL 서비스 시작시 다음과 같은 오류 발생 후 서비스가 시작되지 않는 경우 STOPPING server from pid file /usr/local/mysql/var/서버명.pid DB Data 폴더에 있는 에러 로그를 확인해보세요! cat /usr/local/mysql/var/서버명.err (var OR data) ~~~~ 오류 내용 ~~~~~ 090406 09:16:21 mysqld started InnoDB: No valid checkpoint found. InnoDB: If this error appears when you are creating an InnoDB database, InnoDB: the problem may be that during an earlier attempt you ..
에러 메세지 Error 1016 : Can't open file: '테이블.MYI'. (errno: 145) 복구 방법 명령어 : mysqlcheck -u계정명 -p --auto-repair -B DB명 Enter password : 비밀번호 또는 mysql에 접속후 repair 테이블명; 을 해주셔도 됩니다. mysql> repair table 테이블명; +---------------------+--------+----------+----------+ | Table | Op | Msg_type | Msg_text | +---------------------+--------+----------+----------+ | 테이블명 | repair | status | OK | +-----------------..
필드에 이미 값이 있는 상태에서 특정 값을 추가로 집어넣기 예로 reg_date 라는 필드에 "1234"라는 값이 있는데 추가로 "00" 이라는 값을 붙이고 싶을때 concat 을 사용합니다. update member set code = concat(reg_date,"00") 결과 : "123400" 출처 : 세이박스 http://saybox.tistory.com
checking "LinuxThreads"... "Not found" configure: error: This is a linux system and Linuxthreads was not found. On linux Linuxthreads should be used. Please install Linuxthreads (or a new glibc) and try again. See the Installation chapter in the Reference Manual for more information. 가 나타나면.... /usr/include/pthread.h 파일에서 암때나 /* Linuxthreads */ 를 입력 이유 : mysql configure 과정에서 pthread.h 파일을 찾아 위 문..
Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client 위와 같은 오류 발생은 MySQL 5.0 사용시 PHP버전이 5.0 이하 버전인 경우 발생 합니다. MySQL 5.0 부터 새로운 패스워드 방식으로 만들어 지므로 기존 PHP 버전에서 접속할 수 없으므로 PHP 5.x 이상 버전으로 업하셔야합니다. 만약 상위 버전 사용이 어럽다면 MySQL의 비번을 이전 방식으로 변경 가능합니다. 1. 이전 방식의 비번으로 변경 ㅇUPDATE mysql.user SET Password = OLD_PASSWORD('password') ; 2. MyS..
최근 스크립트 인젝션 공격으로 인해 DB에 가 삽입 되어 애를 먹은적이 있었다. 다행히 스크립트를 찾아서 지워주는 쿼릴 실행해서 복구는 되었으나 지속적으로 들어와 서비스를 중단하고 소스를 수정해야하는 사항까지 갈것 같았다. 그래서 생각한게 보안처리 될 동안 복구해주는 쿼리가 주기적으로 돌아가 주면 좋겠다는 생각에 MSSQL 에이전트 작업을 이용해보았다. 백업등을 목적으로 주로 이용하지만 이렇게 원하는 쿼리를 주기적으로 동작하게끔도 할수 있다. 1. 먼저 "엔터프라이즈 관리자"를 실행한다. 2. 다음으로 콘솔루트 > Microsoft SQL Servers > (LOCAL) ... > 관리 > 작업 을 선택한다. 3. 마우스 우측 버튼을 눌러 작업 추가를 선택한다. 여기서 이름을 구분할 수 있게 적어두고 범..
DB injection 공격? 구글에서 ''' ); FETCH NEXT FROM Table_Cursor INTO @T, @C; END; CLOSE Table_Cursor; DEALLOCATE Table_Cursor; '스크립트 부분은 삽입된 스크립트를 입력 5. 보안 적용 1 - MSSQL 메모리에서 위험한 sp들을 내린다. 보안상 위협이 될 수 있는 개체들에 대하여 일반 사용자 그룹의 사용권한을 제한한다. 참조: http://blahblah.springnote.com/pages/351077 SP 등록해제는 위험을 감안해야 하므로 메모리에서만 내린다. 단점, 재부팅되거나 DB 재시작시 다시 아래 쿼리 실행 할것! dbcc xp_cmdshell(free) dbcc xp_dirtree(free) dbcc x..
Installing Oracle9iR2(9.2.0.4) on RH AS4 에러없이 설치까지 일주일 삽질했습니다. -_-;; 목차 [1] oracle 다운로드 및 압축해제 [2] oracle 유저생성 및 권한부여 [3] pre-install RPM [4] jdk 설치 [5] 공유메모리 및 세마포설정 [6] 오라클사용자 초기화파일구성 [7] 오라클 셋업 [8] 에러조치 [9] TIP & TECH [1] oracle 다운로드 및 압축해제 zcat ship_lnx_920_disk1.cpio.gz | cpio -idmv zcat ship_lnx_920_disk2.cpio.gz | cpio -idmv zcat ship_lnx_920_disk3.cpio.gz | cpio -idmv Disk1, Disk2, Disk3..
Installing Oracle 9i Release2 on Red Hat 리눅스 9 안녕하세요 훠니입니당...(이전 올해안에는 닉네임에서 제이름 닉넴으로 바뀠음당...^^) 본 문서는 Red Hat 9 에서 Oracle 9i (Release 2)를 설치하는 문서입니다. 배포판마다 설치하는데 차이가 있으므로 우리나라 배포판(와우, 한컴)으로 설치하신다면 그 쪽의 참고 문서를 보시기 바랍니다. 본 문서는 Roko Roic의 문서를 한글로 번역하여 작성한 문서입니다. (물론 제 나름대로의 허접한 의역도 들어있습니다...^^) 이 문서대로만 설치하신다면 무난히 오라클 9i를 설치하실 수 있을 것입니다. 단, Oracle 9i Release 1은 RedHat 9에서 확인되지 않을 오류들이 많습니다. 반드시 Ora..
어느날 갑자기 DB에 "" 와 같은 내용이 삽입 된경우는 스크립트 삽입 공격을 받으신 겁니다. 참고로, 구글(http://www.google.co.kr) 에서 "" 내용을 검색해보세요. 국내 사이트중 어마어마 하게 많이 공격받은걸 확인 하실 수 있을겁니다. MSSQL 을 사용중인 서버들이 공격 대상입니다. 항상 느끼는거지만 윈도우 관련 서버들이 취약점이 많다 보니 이런 문제가 생기는 것 같네요 저도 더 자세히 관련 공격 원인과 방어를 찾아봐야겠지마 끝이 없는듯 ㅡㅡ; 그럼, 테이블 마다 일일이 삽입된 스크립트를 일일이 지우는것도 끝이 없죠 그래서 다음과 같이 쿼리를 실행 해주시면 문제의 스크립트가 있는 테이블, 컬럼을 일일이 자동으로 찾아서 삭제 해줍니다. DECLARE @T varchar(255), @..
# pkill -9 mysql # mysqladmin -uroot -p shutdown # /usr/local/mysql/share/mysql/mysql.server stop (start || restart) # killall mysqld mysql 프로세서 죽이기 다양하지만 어떤게 좋은건지는 잘 모르겠다. 하지만 확실하게 프로세서를 죽이는건 역시 killall 이 빠르게 프로세스를 내려준다. ^^;
[MySQL 테이블 오류] ERROR 1016: Can't open file: '테이블이름.MYI'. (errno: 145) (복구하기) # 테이블명.MYI 파일이 있는곳에서 실행해야한다.(ex : 테이블명 - test) # DB명 : testtest # Table명 : test ex) 1. 에러난 파일 : 테이블명.MYI 2. 아래 명령어 실행위치는 /usr/local/mysql/data/testtest(오류난 테이블 DB명) 3. 명령어 실행 [root@localhost root]# /usr/local/mysql/bin/myisamchk -r 테이블명.* myisamchk: error: '테이블명.frm' is not a MyISAM-table --------- myisamchk: error: '테이..
mysql datadir 로 지정되어있는 폴더를 정확히 확인하신 후 아래와 같이 하시기 바랍니다. datadir 이 /usr/local/mysql/var 일 경우 예입니다. /usr/local/mysql/share/mysql.server stop /usr/local/mysql/var/ 디렉토리에 bin-log 파일을 삭제하시면 되는데 형식은 아래와 같습니다. -bin 패턴이 불어있는 파일을 rm 으로 삭제하시기 바랍니다. rm -f *-bin* /usr/local/mysql/share/mysql.server start 위에 있는 글중에서 /usr/local/mysql/share/mysql.server stop 부분과 /usr/local/mysql/share/mysql.server start 부분에 있는 ..
shell> mysqlbinlog binlogfile shell> mysqlbinlog binlogfile > log.txt -------------------------------------- Trouble shooting v6_sw1:/user1/extdata/data> mysqlbinlog v6_sw1-bin.000001 > babo mysqlbinlog: unknown variable 'default-character-set=utf8' /etc/my.cnf에 아래와 같이 설정되어 있습니다. [client] #password = your_password port = 3306 socket = /tmp/mysql.sock default-character-set=utf8 해결방법 default-chara..
usr/local/mysql/bin/mysqlbinlog -uroot -pxxxx -r host명-bin.001 > test.txt
*-bin.* 은 mysql 의 replication 기능을 사용하기 위한 binary file 입니다. 즉 replication 기능을 사용하지 않으시다면 삭제해도 상관없습니다. 만약 이 로그들을 생성시키지 않고 싶으시다면 /etc/my.cnf 에 보시면 ----------------------------------------------------------------- # Start logging log-bin server-id = 1 ----------------------------------------------------------------- 라는 설정이 있을 겁니다. 이 2줄을 모두 주석 처리 해 주시고 mysql 을 재시작 하시면 됩니다. 3.23 에서 새로 생긴 기능이죠. MySQL R..
======================================================= MySQL 로그 파일 관리 ======================================================= Mysql 의 로그 파일은 다음과 같이 크게 3종류가 있습니다. 1. 에러로그 2. 일반적인 로그 3. UPDATE 로그 첫번째 에러 로그는 hostname.err 의 이름으로 서버 실행시 에러를 기록하는 파일입 니다. 두번째 로그파일은 mysql 에 접근하는 사용자와 그들이 파일과 관련된 쿼리를 실행할 경우에 기록되는 로그 파일로 /usr/local/mysql/var 밑에 host_name.log 으로 저장이 되어집니다. Mysql 데이터에 파일을 기록하므로 파일과 관련된 쿼리는..