[MySQL] 테이블 내 중복 데이터 삭제
·
MySQL
서론테이블에 UNIQUE 제약 조건이 없거나, 모종의 이유(?)로 중복 값이 들어있는 경우가 있다.아래의 쿼리를 사용하면 pk가 가장 작은 값은 살아남고, 나중에 들어온 중복 값들을 찾아 삭제한다.이 쿼리를 실행하기 전, 반드시 백업을 해놓고 실행하는 것을 권장한다.중복 제거 쿼리DELETE aFROM [테이블 이름] a, [테이블 이름] bWHERE a.[pk 컬럼] > b.[pk 컬럼] AND a.[중복 값이 들어있는 컬럼] = b.[중복 값이 들어있는 컬럼]; 주의 사항`테이블 이름`은 2개를 작성하지만, 테이블 이름은 똑같아야 한다.마찬가지로 `pk 컬럼`도 똑같은 이름을 작성해야하며, `중복 값이 들어있는 컬럼`도 마찬가지다.사용 예시DELETE aFROM test_db.user a, test_..
[MySQL] 프로세스 확인과 프로세스 죽이기
·
MySQL
MySQL Workbench를 통해 스키마를 수정하거나, 조회를 할 때 종종 이런 에러가 발생한다.Error Code: 2013. Lost connection to MySQL server during query원인은 2가지 정도로 보인다.`쿼리 수행 시간`이 `제한 시간`보다 초과되서 강제로 연결이 끊어짐특정 쿼리에서 `교착상태`가 발생 이번 글은 `교착상태`가 원인일 때 해결하는 방법이다. 프로세스 확인show processlist;여기서 팁스토리님의 글을 참고하여, 각 컬럼의 뜻을 보자.ID : 클라이언트의 프로세스 ID (스레드 번호)USER : 프로세스와 관련된 사용자 이름 (스레드에 접속하고 있는 MySQL 유저명)HOST : 클라이언트가 연결된 호스트 (유저가 접속하고 있는 호스트명 및 IP주..
[MySQL] 계정 조회, 계정 생성, 계정 삭제, 권한 조회, 권한 부여, 권한 삭제
·
MySQL
등록된 계정 확인# mysql 데이터베이스 접근, 최초 한 번만 사용.use mysql;-- 등록되어있는 계정 조회. password는 암호화되어 정확한 확인이 불가SELECT host, user, password FROM user;계정 생성-- 사용방법CREATE user '아이디'@'접근허용 ip' IDENTIFIED BY '비밀번호';-- local 환경에서만 접근 허용할 때 -> 'localhost'CREATE user 'temp_id'@'localhost' IDENTIFIED BY 'abcd';-- 외부 모든 ip에서 접근 허용할 때 -> '%'CREATE user 'temp_id'@'%' IDENTIFIED BY 'abcd';-- 외부의 특정 ip만 접근 허용할 때 -> 예시: '192.20...