[문제해결] java.sql.SQLException: Deadlock found when trying to get lock; try restarting transaction Query: update … 2015-10-05

1. 문제상황

> 특정 테이블에 쿼리 실행시 데드락이 발생하였다.

java.sql.SQLException: Connection is closed.
java.sql.SQLException: Deadlock found when trying to get lock; try restarting transaction Query: update table set ... where field1=? and field2=?  Parameters: [test1,test2]

2. 문제확인

> mysql의 경우 오라클과 다르게 유니크 인덱스나 일반 인덱스가 걸리지 않았다면 전체 테이블을 읽기 때문에 전체에 락이 걸리게 된다는 점을 간과 하였다. 즉, field1=? and field2=? 조건에 결합인덱스가 걸려있지 않다면 전체 테이블에 락을 건 상황에서 다른 사용자가 테이블을 수정하려 하였다면 데드락이 발생한다.

* 유니크 인덱스는 완벽한 row 단위 락이 걸림
* 일반 인덱스는 참조 했던 row가 모두 락이 걸림
* 인덱스가 없어 테이블 전체를 읽으면 모든 row가 락이 걸림

3. 문제해결

> field1=? and field2=? 두개 필드에 대한 인덱스를 생성한다.

[문제해결] Cannot run program “svn” (in directory “C:\…): CreateProcess error=2, 지정된 파일을 찾을 수 없습니다. 2015-09-26

1. 문제상황

> Android Studio에서 Subversion 에 Import 시도시 다음과 같은 에러메시지가 출력되었다.

Cannot run program "svn" (in directory "C:\...): CreateProcess error=2, 지정된 파일을 찾을 수 없습니다.

androidStudio


2. 문제확인

> Subversion command-line client를 설치해야한다.


3. 문제해결

> program download : http://server.opendocs.co.kr/Apache-Subversion-1.9.2.zip

http://www.visualsvn.com/downloads/ 에 접속하여 `Apache Subversion command line tools`를 다운로드 한다.

androidStudio_download
> 환경변수 설정

압축을 해제하면 bin, License 폴더가 있고 bin 폴더의 파일을 실행할 수 있도록 PATH 환경 변수를 설정한다.

androidStudio_path

[문제해결] Warning: Using a password on the command line interface can be insecure. 2015-08-24

1. 문제상황

> mysql 백업스트립트 작성시 다음과 같은 경고가 발생하였다.

Warning: Using a password on the command line interface can be insecure.

mysql password


2. 문제확인

> mysql 5.6버전부터 mysqldump 명령시 mysql_config_editor를 이용한 로그인 설정이 필요하다고 한다.


3. 문제해결

> 설정하기

mysql_config_editor set --login-path={설정명} --host=localhost --user=root --password
Enter password: {패스워드를 입력하여 저장}

> 사용하기

mysqldump --login-path={설정명} {디비명} > {백업파일명}.sql

> 옵션설명

--login-path : 구분하기위한 문자열
--host : 접속하려는 DB서버의 호스트명 또는 IP
--user : 저장할 계정
--password : 패스워드값은 제외하고 옵션만 지정하여 실행