일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- next #middleware
- interactive_timeout
- reacts3
- 자연수 뒤집어 배열로 만들기
- .env
- express
- 프로그래머스
- 부족한 금액 계산하기
- 자동완성방지
- max_allowed_packet
- 코드정렬
- Node
- dotenv
- s3확장자
- EC2
- vscode
- 리액트코드정렬
- elasticIP
- MySQL
- react
- AWS
- 리액트
- 커밋 한번에
- 프리티어
- prettier
- utf8mb4
- 코딩테스트
- axios
- 제일 작은 수 제거하기
- useReducer
- Today
- Total
목록mysql (10)
Sungtt
특정 key로 연결된 테이블들을 한번의 쿼리문으로 각 값을 변경하고싶을 때 사용한 쿼리문이다. T1,T2는 실제로는 이름이 너무 길어서 AS를 통해 별칭을 지어줬다. 나의 경우에는 T1, T2에서 Id로 연결을 할 수 있었고, Id를 통해 각 테이블을 INNER JOIN 해준뒤에 SET으로 변경할 각 테이블 컬럼을 변수로 접근하였다. 마지막으로 WHERE를 통해 바꾸고싶은 row만 선택하여 변경했다. UPDATE T1 AS a INNER JOIN T2 AS b ON (a.Id = b.Id) SET a.?? = 1, b.?? = b.?? + 1 WHERE a.Id = ? 참고 https://aljjabaegi.tistory.com/539
쿼리문내부에 컬럼명을 변수로 이리저리 사용하고 싶을때 보통의 경우에는 아래와 같이 시도한다. 이는 오류를 일으킨다. const CountQuery = 'UPDATE count SET ? = ? + 1 WHERE ID = ?'; db.query(CountQuery, [Number, Number, userId], (err, rows) => { }); //오류!! 해결방법으로는 쿼리문 내부에 컬럼명이 위치하는곳에는 물음표를 두개 써주는것이다. const CountQuery = 'UPDATE count SET ?? = ?? + 1 WHERE ID = ?'; db.query(CountQuery, [Number, Number, userId], (err, rows) => { }); //Good!
개요 로컬 작업환경을 옮길 때 마다 DB에 수정사항이 여럿 생겼을때면 번거로울 때가 있다. 아래 쿼리문에 원하는 테이블을 넣고 실행하면 해당 테이블의 생성 쿼리문을 알 수 있다. SHOW CREATE TABLE `테이블`;

개요 데스크탑과 노트북 서버 모두 DB서버를 따로 쓰면서 개발하다보니까 테이블을 하나씩 추가되거나 컬럼이 생길때마다 각 개발환경에서 DB를 갱신해줘야하니 번거로웠다. 테이블 생성을 좀 더 편하게 할 순 없을까 찾아보니 내가 원하는 테이블의 생성쿼리문을 복사하여 가능했다! 방법 worchBench에서 진행한다. 1 복사를 원하는 테이블을 우클릭 > Copy to Clipboard > Create Statement 해준다. 테이블은 한개도 가능하고 다중으로 선택해도 가능하다. 2 복사해놓은 테이블 생성문을 옮길곳으로 가서 Ctrl + v 하면 쿼리문이 나온다. 그대로 상단의 번개버튼을 눌러 실행시켜주면 생성 완료.

PROTOCOL_PACKETS_OUT_OF_ORDER AWS EC2 서버를 구동중일 때 몇시간동안 아무 행동이 없으면 mysql에서 이러한 오류가 뜨면서 서버가 멈춘다. 스택오버플로우를 뒤져보니 1.max_allowed_packet을 더 높은값으로 변경하면 해결될것이라 했다. 2. interactive_timeout과 wait_timeout 값 변경하기 max_allowed_packet 통신간 데이터전송량을 정하는 설정이다. interactive_timeout 콘솔이나 터미널모드에서 mysqld와 clinet가 연결을 맺은 다음 요청을 기다리는 최대 시간이다. wait_timeout api를 이용한 client프로그렘 상에서 최대 연결시간을 말한다. 설정된 시간동안 아무요청이 없으면 연결은 취소되고, 다..
개요 JS에서 배열이나 문자열을 이어서 붙이듯 mysql db에 들어있는 값을 유동적으로 이어붙일 수 있다. 내가 사용했던 방법은 게시물 중복추천 방지를 위한 DB로직중 하나다. 게시물 추천 시 유저아이디를 DB에 저장하고, 다른 사람이 또 그 게시물에 추천하였을 때 'user1','user2', 이런식으로 아이디를 따옴표와 쉼표로 감싸고 update해주는 방식이다. UPDATE table SET column = CONCAT_WS("",column, ''?',') WHERE index =(?) 테이블을 선택 해준 뒤, 값을 이어붙이고싶은 column을 설정해주고, index를 지정해주어 원하는 row의 column값에 문자열을 이어붙여준다. CONCAT_WS 함수 둘 이상의 문자열이 있는 경우, 각 문자..

개요 배포준비중인 앱에서 jwt 방식의 회원가입을 구현할 때 만난 새로운 단어다. 기존에는 node에서 mysql 명령어를 이용하여 데이터를 가공했다. ORM의 개념을 알고 node의 Sqquelize까지 확장시킨다면, JS언어만으로도 DB의 데이터를 가공할 수 있을것이다. 코드 작성 이전에 개념을 익혀두자. ORM (Object-Relational Mapping) ORM을 단순하게 표현하면 객체와 관계와의 설정이라고 한다. ORM에서 말하는 객체(Object)는 *OOP(Object_Oriented Programming)의 그 의미다. 관계는 *RD(Relational Database)를 의미한다. OOP와 RD를 맵핑해주는 도구이다. OOP도 RD도 각자의 영역이고 잘 쓰여지던 둘을 굳이 맵핑해주는 ..

개요 linux2환경에서 node 와 mysql를 연결하던 도중 만난 오류 접근권한 확인 mysql> select host, user from mysql.user; 비밀번호 플러그인 체크 mysql> select host, user, plugin, authentication_string from mysql.user; 플러그인 변경 mysql> ALTER USER '유저네임'@'%' IDENTIFIED WITH mysql_native_password BY '패스워드'; 정상작동 참고 블로그 https://velog.io/@nari120/MySQL-ERNOTSUPPORTEDAUTHMODE-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0 [MySQL 8.0] nestjs 연동시 에러 해결 ..
개요 : AWS ec2 linux2 환경에서 mysql-server 설치 도중 막힘 GPG key 관련 사항으로 보임 내용 : The GPG keys listed for the "MySQL 8.0 Community Server" repository are already installed but they are not correct for this package. Check that the correct key URLs are configured for this repository. 해결 : 스택오버플로우를 참고하여, 아래 명령어를 실행하고나서 다시 yum 해보니 설치됨 # rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

ER_TRUNCATED_WRONG_VALUE_FOR_FIELD \\xF0\\x9F\\ mysql에서 charset/collation을 utfmb4로 세팅해도 불구하고 이모지 오류가 나는 분들이라면 도움이 될것이다. 우선 다 뒤로 미루고, 내가 만난 정답을 공유하자면 js의 mysql을 연결하는 코드에서 charset : 'utf8mb4' 를 추가해주는 것이다. const db = mysql.createConnection({ host: "localhost", prot:'3306', user:"root", password:"...", database:"...", charset : 'utf8mb4' // 코드 추가 }); axios로 전송한 데이터를 테이블에 저장할 때 만난 오류다. 이모지의 크기는 4byte..