Node.js발행일 2023. 1. 27.원본 https://blog.naver.com/jword_/222996712158 ↗

[AI스쿨] MYSQL workbench gcp서버와 연결

[AI스쿨] MYSQL workbench gcp서버와 연결 — #AI스쿨 #mysqlworkbench #mysqlworkbenchgcp AI스쿨 msa기반 java 백엔드 코스 중에 공부한 내용을 작...

#Node js#Naver Blog

#AI스쿨 #mysqlworkbench #mysqlworkbenchgcp

​

AI스쿨 msa기반 java 백엔드 코스 중에 공부한 내용을 작성하였습니다

학습법 이론

학습을 하기 이전, 명심해야할 학습법이 있다.

​

1.이해가지 않는다고 뒤돌아가 다시 보지 말 것

2.외우지 말라

=> 자주 봐서 외워짐을 당하라

=> 크롬을 통해 copy and paste하라

  1. 이해하는게 중요하다

=> 왜 생겨났는지?

=> 왜 사용하는지?

===> 응용이 가능해진다.

4.새로운 지식을 넣을땐 뇌를 비우자

MySQL workbench gcp서버와 연결하기

이미지

이전글에서 GCP서버에 Node js API를 배포하였습니다. 하지만, 제가 작성한 API가 MYSQL과 연동되어 있기 때문에 GCP서버내에서 MySQL설치 및 설정을 해주어야합니다.

​

특히나 로컬(local)에서 크롤링한 데이터는 로컬 MySQL서버에 저장되기 때문에 GCP서버에서 사용이 불가능합니다. 저는 로컬에서 크롤링한 데이터를 GCP서버의 MySQL서버로 저장하기 위해서 MySQL Workbench를 이용하겠습니다.

​

​

MySQL GCP서버에 설치하기

GCP에 MySQL설치하기

설치하는 방법은 간단합니다. apt-get명령어를 사용하여 아래와 같은 명령어를 입력합니다.

$ sudo apt-get update$ sudo apt-get install mysql-server

여기서 sites-available파일로 이동한뒤 default파일을 관리자 권한으로 열어줍니다. 이후 아래 명령어를 입력하여 제대로 설치되어있는지 확인해줍니다.

$ sudo mysql --version

MySQL 사용자 생성 및 데이터베이스 선택/권한부여

외부접속

앞에서 언급한것처럼 local에서 크롤링한 데이터를 GCP MySQL서버로 저장하기 위해서는 외부접속을 허용해줘야합니다. GCP 서버내의 MySQL에서 아래와 같은 설정을 진행합니다.

​

MySQL 사용자 생성

root계정으로 접근하는것은 불가능하니 내부에서 계정을 하나 생성합니다. 아래는 MySQL서버에 접속후 계정생성을 하는 명령어입니다.

$ sudo mysql -u root -pmysql> create user 'userName'@'%' identified by 'password' ;

'username'와 'password'부분에는 본인이 원하는 값을 입력해주시면 됩니다.

@뒤의 값은 접근 허용범위입니다.

  • @"%" : 해당 사용자는 외부접근 가능
  • @"localhost" : 해당 사용자는 내부에서만 접근 가능
  • @"xxx.xxx.xxx.xxx": 해당 사용자는 지정한 ip에서만 접근 가능

​

비밀번호 생성시 특정 조건이 맞지 않으면 오류가 나기도 하는데, 해당 오류는 MySQL관련 오류에서 해결하실 수 있습니다.(업데이트예정)

데이터베이스 선택

전체 데이터베이스를 확인 후 선택합니다. 이후 해당 데이터 베이스를 사용중인 계정을 확인하실 수 있습니다.

mysql> show databases;mysql> use mysql;

이미지

mysql> select user, host from user;

이미지

제가 생성한 news계정이 전체 권한(%)으로 해당데이터를 사용하고 있는것을 볼 수 있습니다.

​

데이터베이스 생성

새로운 데이터베이스가 필요하다면, 아래와 같은 코드를 입력해주세요. dataName은 임의로 설정하시면 됩니다. (해당 데이터베이스는 MySQL workbench의 Schema에 해당하는 부분입니다)

mysql> create database dataName;

데이터베이스 권한 부여

아래 코드는 새로 만든 계정에 사용할 데이터베이스의 모든 권한을 넘겨줍니다.

mysql> grant all privileges on dataName.\* to 'userName'@'%';mysql> flush privileges;

아래 코드는 해당 사용자에 대한 모든 권한을 보여줍니다.

mysql> show grants for 'userName'@'%';

MySQL 외부접속 허용 (파일설정)

MySQL 파일 위치

이제 MySQL내부에서 파일설정을 해줘야합니다. 외부접속을 허용하도록 bind-address를 전체 주소로 설정합니다. 파일위치는 아래와 같습니다.

$ cd /etc/mysql/mysql.conf.d

아래 코드를 입력하여 파일을 관리자권한으로 엽니다.

$ sudo vim mysqld.cnf

이미지

아래를 내리다 보이는 bind-adress부분을 0.0.0.0으로 수정합니다. 여기를 클릭하여 GCP의 방화벽 규칙을 새로 추가합니다. (링크추가 예정)

​

마지막으로 MySQL을 재시작합니다.

$ sudo service mysql restart

MySQL Workbech와 GCP서버 연결하기

이미지

이제 MySQL WorkBench로 들어와서 Connections를 추가합니다.

이미지

이미지

해당설정에 Hostname에 GCP서버 IP주소를 입력해주고 포트는 3306으로 설정해줍니다. Test Connection눌러서 성공했다는 메세지가 뜨면 완료입니다.

이미지

이제 selenium을 로컬에서 돌려(웹데이터 크롤링)도 GCP 서버로 저장이됩니다. GCP에서 테이블을 생성하고 수정하는 것보다 Workbech내에서 수정하는게 간편하기 때문에 훨씬 효율적으로 데이터를 관리할 수 있습니다.