본문 바로가기

DB/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 뷰의 컬럼의 내용은 아래와 같습..
MySQL 기본 인코딩 UTF-8설정하기 mysql을 사용할때 인코딩이 utf-8로 설정이 안되어 있어서 한글이 깨지는 현상이 있을 때 매번 alter 구문이나 create 구문으로 인코딩을 직접 지정하려니 힘들어서 기본 인코딩 설정법을 알아보겠습니다. 환경은 window 로컬환경이며 my Sql versison 은 8.0.35 입니다. 버젼 확인법은 아래쿼리를 실행시켜서 나오는 vestion 값 입니다. my sql 버젼 확인 쿼리 : SHOW VARIABLES LIKE '%verstion' 1. show variables LIKE '%dir%' 쿼리를 통해서 폴더 경로 파악 위 쿼리를 통해서 폴더의 경로를 파악하고 my.ini파일을 찾는다 2.cmd를 관리자 권한으로 실행한 뒤 아래 명령어 실행 notepad C:\Program Files\..
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..