일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ethers websocket
- SBT표준
- 프록시배포구조
- 머신러닝기초
- nest.js설명
- Vue
- 스마트컨트렉트 예약어 함수이름 중복
- 컨트렉트 배포 자동화
- ethers v6
- vue기초
- 러스트 기초
- 스마트 컨트렉트 함수이름 중복
- 스마트컨트렉트 함수이름 중복 호출
- 러스트기초
- ethers type
- 체인의정석
- ambiguous function description
- 컨트렉트 동일한 함수이름 호출
- 러스트 기초 학습
- 깃허브명령어
- multicall
- Vue.js
- 스마트컨트렉트프록시
- nestjs 튜토리얼
- ethers typescript
- 스마트컨트렉트테스트
- chainlink 설명
- rust 기초
- ethers
- git rebase
- Today
- Total
체인의정석
라인 블록체인 해커톤 01 - 데이터베이스 구축 및 배포 본문
1차 예선을 통과하여 웹어플리케이션 구현
1. aquery tool을 활용한 DB생성
머리로 계속 상황을 생각해가며 그리는게 은근히 재밌습니다 ㅎㅎㅎ
2. 클라우드에 인스턴스 생성 후 DB 생성, 설치는 하단 링크 참고
3. 외부 접속 허용 시켜주기 -> 오류가 나서 새로운 계정 생성해 주니 해결
mysql 8 부터는 문법이 바뀌었기 때문에 아래 채럼하면 안된다.
주의) mysql이 8버전인 경우
ALTER USER 'root'@'localhost' IDENTIFIED BY 'oracle'; 사용
create user 비번identified by '비번';
grant all privileges on DB이름 to 아이디;
root 유저를 하면 보안에 좋지 않기 때문에 새로운 유저를 만들어서 권한을 넘겨준다.
그 후
mysql.conf.d 파일이 있는 /etc/mysql/mysql.conf.d를 vi로 열어서
바인드 어드레스에 주석을 달거나 전체 허용으로 바꿔준다.
mysql버전에 따라서 문법이 바뀌기 때문에 에러가 나면 해당 버전으로 다시 찾아서 해결해야 한다.
버전 8.0 이후에서는 비밀번호를 바꾸는 문법이 바뀐것이다. 그러나 유저를 생성할때 기본적으로 비밀번호를 만들어주는 문법은 그대로이므로, 에러가 나지 않았다.
따라서 위링크를 통해 비밀번호를 지정해주거나 새로운 유저를 생성해주면 된다.
8.0버전 쓰는법
$ mysql -u root -p Enter password: (enter your root password)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_password';
mysql> FLUSH PRIVILEGES;
mysql> quit
또는 다음과 같이 설정해도 해결이 된다.
mysql installer > server 옆에 reconfigure > Auth 설정가서 legacy 선택 > 완료
위에 ALTER문을 써주지 않으면 node.js에서도 에러가 난다고 하니 미리 설정해주고 들어가자.
4. MySQL Branch에 연결
접속정보를 넣고 연결해 준다.
use Blimit; 을 사용하여, DB를 지정해준 후 a query tool의 DB생성문을 넣어준다.
그러나, 외래키 생성에서 에러가 발생, 테이블만 생성한 후 브랜치에서 바로 해결하기로 하였다.
여기서 릴레이션을 설정하면 외래키가 생성된다! 대박..
그렇지만 여기서도 외래키애 대한 답은 찾을 수 없었습니다.
01:46:15 ALTER TABLE product ADD CONSTRAINT FK_product_usr_id_user_usr_id_idx FOREIGN KEY (usr_id) REFERENCES user (usr_id) ON DELETE RESTRICT ON UPDATE RESTRICT Error Code: 1822. Failed to add the foreign key constraint. Missing index for constraint 'FK_product_usr_id_user_usr_id_idx' in the referenced table 'user' 0.000 sec
오류 메세지를 유심히 보던 찰나, index 라는 단어가 보였고, 혹시나 해서 들어가보니 참조하는 데이터 값에 unique index가 지정되어 있지 않았습니다.... 이것때문에 몇시간을 날렸네요 ㅎㅎㅎ
유니크 인덱스는 외래키를 할때 꼭! 설정해줘야 합니다.
PrimaryKey가 아니더라도 UniqueKey만 설정되어 있으면 완성!
aquery tool에는 문제가 없었네요
그래도 아까 해본 걸로 다이어그램까지 생성!
이렇게 DB를 성공적으로 만들었습니다.
내일부터는 이제 node.js와 DB를 연동해서 기본 작업부터 들어갈거에요~
'블록체인 > 퍼블릭 블록체인' 카테고리의 다른 글
Solidity 코드 로컬환경 & Remix에서 배포하기 (0) | 2021.01.28 |
---|---|
erc20파일 노드에서 더 편하게 관리하는 법 npm @openaeppelin/contracts (0) | 2021.01.28 |
Truffle 배포 후 web3에 abi인식 시키기 (0) | 2021.01.26 |
라인해커톤 참여기2) 서버와 DB 연동하기 (0) | 2020.12.18 |
프로젝트 후기] GINI 프로젝트 - Klaytn, Ethereum (0) | 2020.12.08 |