체인의정석

라인 블록체인 해커톤 01 - 데이터베이스 구축 및 배포 본문

블록체인/퍼블릭 블록체인

라인 블록체인 해커톤 01 - 데이터베이스 구축 및 배포

체인의정석 2020. 12. 17. 01:58
728x90
반응형

1차 예선을 통과하여 웹어플리케이션 구현

 

1. aquery tool을 활용한 DB생성

머리로 계속 상황을 생각해가며 그리는게 은근히 재밌습니다 ㅎㅎㅎ

 

2. 클라우드에 인스턴스 생성 후 DB 생성, 설치는 하단 링크 참고

 

dejavuqa.tistory.com/317

 

mysql 설치 와 기본 설정 (on Ubuntu)

Ubuntu에 mysql을 설치해 보겠습니다. 언제나 그렇듯이 Ubuntu 버전부터 살펴보겠습니다. $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.2 LTS Release: 18...

dejavuqa.tistory.com

3. 외부 접속 허용 시켜주기 -> 오류가 나서 새로운 계정 생성해 주니 해결

mysql 8 부터는 문법이 바뀌었기 때문에 아래 채럼하면 안된다.

 

it-timehacker.tistory.com/40

 

서버용 DB설치 시 외부 접속 허용하는 법

서버용 DB를 처음 설치할때 외부 접속을 허용하게 하려면 다음과 같은 절차를 밟아야 한다. 출저 https://idchowto.com/?p=11068 idchowto.com - 스마일서브(Cloudv.kr) IDC구축,운영,보안등 모든 지식을 공유합니

it-timehacker.tistory.com

주의) mysql이 8버전인 경우

ALTER USER 'root'@'localhost' IDENTIFIED BY 'oracle'; 사용

stackoverflow.com/questions/36099028/error-1064-42000-you-have-an-error-in-your-sql-syntax-want-to-configure-a-pa

 

ERROR 1064 (42000): You have an error in your SQL syntax; Want to configure a password as root being the user

I have just downloaded WAMP. I want to configure a password for the MySQL root user using MySQL console. No password has been set previously. The following is the input mysql-> use mysql

stackoverflow.com

nasanx2001.tistory.com/entry/mysql-80-%EC%84%A4%EC%B9%98%EB%B6%80%ED%84%B0-%EC%85%8B%ED%8C%85%EA%B9%8C%EC%A7%80

 

mysql 8.0 설치부터 셋팅까지

항상 mysql 5.x대를 쓰다가 최근 8.0 버전을 사용해 보았다. 해본결과 기존꺼와 좀 다른부분들이 있어서 이렇게 오랜만에 정리를 해본다. 1. mysql 8.0 설치 2. mysql에 접속한다. mysql -u root -p 입력 후 접

nasanx2001.tistory.com

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생성문을 넣어준다.

 

그러나, 외래키 생성에서 에러가 발생, 테이블만 생성한 후 브랜치에서 바로 해결하기로 하였다.

animal-park.tistory.com/89

 

MySQL Workbench를 이용하여 테이블구조도 쉽게 만들기!!

개인 포폴을 준비하면서 테이블 구조도가 필요하게 되었는데요. 몇 번의 클릭으로 테이블의 구조도를 쉽게 만들어주는 기능이 있네요. MySQL의 workbench를 사용하시는 분들에게 가능해요. 우슨 아

animal-park.tistory.com

여기서 릴레이션을 설정하면 외래키가 생성된다! 대박..

 

그렇지만 여기서도 외래키애 대한 답은 찾을 수 없었습니다.

 

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를 연동해서 기본 작업부터 들어갈거에요~

728x90
반응형
Comments