본문 바로가기

STUDY/DATABASE

(13)
트랜잭션 트랜잭션이란 애플리케이션에서 몇 개의 읽기와 쓰기를 하나의 논리적 단위로 묶는 방법이다. 개념적으로 한 트랜잭션 내의 모든 읽기와 쓰기는 한 연산으로 실행된다. 트랜잭션의 핵심은 일련의 작업 도중 오류가 생기면 취소(abort, rollback)되고, 안전하제 재시도 할 수 있다는 것이다. 트랜잭션은 전체가 성공(commit)하거나 실패(abort, rollback)하므로 트랜잭션이 실패하면 애플리케이션에서 안전하게 재시도 할 수 있다. 즉, 트랜잭션 덕분에 부분적인 실패를 걱정할 필요가 없으므로 애플리케이션에서 오류를 처리하기 훨씬 쉬워진다. ACID 트랜잭션은 ACID 속성을 가진다. Atomicity - 원자성 여러 작업이 하나의 원자적인 트랜잭션으로 묶여있다. 트랜잭션 도중 어떠한 결함으로 인해 ..
MySQL | load data infile ERROR 해당 에러로 찾아보면, my.cnf파일을 수정하라는 말들이 많은데, 아래 설정만 제대로 해주면 잘 된다..! load data infile을 load data local infile로 변경 load data infile은 특정 경로에 있는 파일만 읽도록 설정되어 있다. 특정 경로와 상관 없이 파일을 읽어들이고 싶다면 load data local infile로 변경해야 한다. load data local infile [파일 path 입력] into table [테이블명 입력] local_infile 값이 ON으로 설정되어있는지 확인 local_infile의 설정값을 확인한다. $ mysql -u root -p $ show variables like 'local_infile'; OFF로 설정되어 있다면 ON..
MySQL | export DDL 해당 데이터베이스에 있는 모든 테이블의 DDL을 뽑고싶었음.. --no-data 옵션이 DDL만 뽑기위한 옵션이고, 파일을 생성하고 싶은 위치에서 아래 명령어를 실행하면 된다. mysqldump -h [ip address or hostname] -u [username] -p --no-data [databasename] > [filename].sql 아래 빨갛게 가린 부분이 데이터베이스명을 적은 곳! 만약 에러 발생하면, --single-transaction을 추가해서 실행해보자..
MySQL | Unable to load authentication plugin 'caching_sha2_password' 터미널에서 MySQL실행 후 해당 user를 수정해주면 해결된다. +) 터미널에서 MySQL실행하는 방법 및 user생성 하는 법 (이전 글) : DATABASE, USER 생성 alter user '[유저네임]'@'%' identified by '[비밀번호]';
MySQL | 날짜 비교 ( where 오늘 / 이번 달 등) 이번달 where year([column_name]) = year(now()) and month([column_name]) = month(now()) 오늘 where date_format([column_name], '%Y-%m-%d') = date_format(curdate(), '%Y-%m-%d') 날짜 사이에 해당하는지 where ( date([column_name]) between '2020-12-01' and '2020-12-05') 대충,,, 요정도 응용하면 다 구할 수 있을 것 같다. + datediff 두 날짜 사이의 차이 일 수를 구해줌 datediff([column_name], now())
MySQL | Unknown collation: 'utf8mb4_0900_ai_ci' 데이터베이스에서 Columns정보 확인 했을 때 utf8mb4와 utf8mb4_0900_ai_ci가 설정되어있다면 해당 컬럼을 utf8, utf8_general_ci로 변경해주자...
MySQL | Geolocation 거리 구하기 경도 == x == latitude 위도 == y == longtitude ROUND(6371 * acos( cos( radians( [현재 경도] ) * cos( radians( [비교할 위도] ) ) * cos( radians( [비교할 경도] ) - radians([현재 위도]) ) + sin( radians( [현재 경도] ) * sin( radians( [비교할 위도] ) ) ), 2)
MySQL | DATABASE, USER 생성 / Data Export / Data Import 0. MySQL접속 root계정으로 접속 후 mysql database사용 $ mysql -u root -p $ use mysql 1. USER생성 @'%'를 붙이는 이유는 외부접속을 허용하기 위함 작은 따옴표 꼭 붙일것 $ create user 'username'@'%' identified by 'password'; // native password $ create user 'username'@'%' identified with mysql_native_password by 'password'; 2. DATABASE생성 생성 후 show databases를 통해 확인해보기 $ create database [database_name] default character set utf8; *DATABASE삭제 ..