본문 바로가기

MySQL

(6)
MY SQL RECORD LOCK PROCESS KILL 레코드 행락 킬하기 최근 작업하다가 MYSQL에서 INNODB RECORD LOCK이 생기는 현상이 있어서 이를 해결 했던 방법을 적으려 합니다한행의 INDEX를 기준으로 LOCK을 걸어서 해당 행에 SELECT , UPDATE, DELETE 를 하지 못하도록 막아놓은 처리가 RECORD LOCK입니다.이때 LOCK 이 걸리게되면 해당 트랜잭션이 처리가 될때까지 다른 세션에서는 해당 레코드에 어떠한 쿼리를 실행해도 대기 상태에 걸리게 되는데요 이를 강제적으로 처리하는게 해당 LOCK을 건 트랜잭션을 찾아서 KILL 해버리는 방법입니다MY SQL 8.0버젼 부터는 performance_schema.data_locks 에 lock에 관한 정보가 조회되어 나옵니다.  SELECT * FROM performance_schem..
MY SQL 데이터베이스에서 특정 컬럼명 포함된 테이블 찾는 방법 MY SQL에서 특정 컬럼명을 포함한 모든 테이블을 조회 하고 싶을 때가 있는데 그럴땐 아래와 같은 쿼리를 작성하면 됩니다. SELECT TABLE_SCHEMA , TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = 'username' AND TABLE_SCHEMA = 'your_database_name'; 위처럼 INFORMATION_SCHEMA.COLUMNS 뷰는 데이터 베이스의 테이블의 컬럼정보를 제공하며 test라는 컬럼을 column_name에 조건으로 걸어주게된다면 아래와 같이 test라는 컬럼명을 포함한 테이블 명칭이 조회되어 나오게 됩니다. 뿐만아니라 INFORMATION_SCHEMA.COLUMNS 뷰의 컬럼의 내용은 아래와 같습..
C# fatal error encountered attempting to read the resultset 오류 처리 C# 클라이언트 프로그램으로 대량의 데이터를 Insert 시키는 과정에서 'fatal error encountered attempting to read the resultset' 라는 문구를 띄우면서 에러가 발생하였다. 해당 문구를 검색해보니 my sql에 connection을 하고 어떠한 이유에서든지 connection이 끊기게 되면 해당 에러문구를 발생시키는 듯 합니다. 다른 사람들의 케이스로는 1.my sql 버젼 문제 2.max connection pool 문제 3.time out 문제 이렇게 있는듯 합니다. 저의 경우에는 db tool 에서는 해당 쿼리가 제대로 실행되는데 c#프로그램에서 돌리면 에러가 발생하므로 c#코드에서 mysql을 connection하는 문제라는 것이 유추 되었습니다. 처..
MySql Unable to connect to foreign data source: Can't connect to MySQL server on 간단 해결 My Sql Federated 작업을 하다가 위와 같은 오류가 났습니다. 위 오류는 A서버에서 B서버로 연결을 시도할 때 발생한 오류로 여러가지 시도와 검색을 하였으나 발견하기 힘든 오류였습니다. 그러나 B서버에서 A서버로의 Federated가 성공하는 것을 보고 단순한 권한 설정과 혹은 방화벽 허용 문제라는 것을 금방 알았습니다. 저의 경우에는 위 문제는 단순한 ip 허용 문제였지만 이외에도 max connection 설정, 권한문제 등등 많은 케이스가 있는 것 같습니다.
My Sql 1429 : Unable to connect to foreign data source connection error my sql에서 federated를 사용하여 db를 서로 연결시키는 작업을 진행하다가 위 오류를 마주 했습니다. 해당 내용을 찾아보니 원본서버에 connection 수가 너무 많아서 생기는 문제라고 합니다. 해결 하는 방법은 크게 2가지 정도가 있는 것 같은데.. 제가 해본건 1번 뿐 1.쿼리 or 설정파일 변경 SHOW VARIABLES LIKE '%error%'; SET GLOBAL max_connect_errors = '지정값' 위 쿼리를 사용하여 max_connection의 수를 늘리는 방법과 my.ini 또는 my.cnf 의 설정에 들어가서 아래 설정을 넣는 방법이 있습니다. max_connections = '지정값' wait_timeout = '지정값' 2.해당 db를 사용하는 서비스 프로그램..
MySql LOAD DATA LOCAL 사용법 not found error 처리 LOAD DATA LOACAL INFILE 은 my sql에서 txt나 csv형식의 데이터 파일을 읽어와서 db에 insert 시키는 방법입니다. MY SQL이 위치되어 있는 LOCAL 에서 해당 파일의 절대 경로를 입력하여 사용가능하며 CHARACTER 로 인코딩을 지정 하고 FIELDS TERMINATED 로 컬럼 구분자 LINES TERMINTED 로 행 구분자를 지정해 줍니다. 쿼리문은 아래와 같습니다. LOAD DATA LOCAL INFILE '파일명' INTO TABLE 테이블명 CHARACTER SET UTF8MB4 FIELDS TERMINATED BY '\t' -- 컬럼 구분자 LINES TERMINATED BY '\n' -- 행 구분자 + 파일명과 테이블명을 제대로 입력했는데 not fo..