Ubuntu mysql 8v install

6312 단어 ubuntuawsmysqlaws

현재 작업했던 프로젝트를 배포하는 과정에 있어 잊어버리지 않기 위한 포스팅...


우분투18버전 MySQL 8버전 설치

일반적으로 sudo apt-get install mysql-server로 설치하게되면 5버전으로 설치하게된다. 8버전으로 설치해보자.

설치방법

아래 링크를 따라서 작성하자. 간단하다!!

링크

만약 우분투 20 버전이라면, 여기서 절차를 확인해보면 좋을 것 같다.

모두 설치 후

// root 경로로 이동
sudo su

// 입력 후 모두 yes를 선택 후 비밀번호 설정 후 또 모두 yes
mysql_secure_installation

mysql 접속 시

// root 경로
// 아래 입력 후설정한 비밀번호 입력하여 접속
mysql -uroot -p

// 접속 후 나올 경우
exit;

npm start

mySQL까지 설치를 했다면 npm start로 백 서버를 실행해주자.

여기서 에러가 발생한다!!! 당연한 에러 발생이다. 현재 우분투에 전달한 코드는 깃허브와 연결한 상태다. 깃허브에 올릴 때 .env로 비밀키와 업로드하지 않을 파일들을 작성했을 것이다.

그래서 현재 우분투는 .env에 대한 파일이 없는 상태이기 때문에 여기서 추가적으로 .env를 만들어줘야한다.

.env 만들기

vim .env

위 텍스트를 입력하면 vim이라는 에디터가 터미널에서 나오고 a, i를 눌러서 입력을 할 수 있다. 그럼 실제 작성했던 .env의 내용을 똑같이 작성한 후 esc를 누르고, :wq를 입력해준다.

:wq - 입력된 값을 저장하고 에디터에서 나간다.

이렇게 작성 후 다시 npm start를 하면 또 에러가 발생 ㅜ

ERROR: Access denied for user 'root'@'localhost'

위와 같은 에러가 발생이 된다. 배우기에는 여기서 처음에 mysql 설치 시 설정한 비밀번호를 변경해야한다는데 정확한 의미는 모르겠다. 일단 진행을 해보자.

mysql 비밀번호 변경

// mysql 접속
mysql -uroot -p

// 비밀번호 변경
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '비밀번호';

// mysql 나오기
mysql> exit;

나머지 실행

// db 생성
npx sequelize db:create

// back 서버 실행
npm start

프로젝트에서 백 서버 포트를 어떻게 설정했는지에 따라서 한번 더 수정을 해줘야한다. 이 정리하는 포스트는 처음부터 얘기가 없어서 혼란스럽겠지만, AWSEC2로 진행하고 있는 중이다.

인스턴스를 생성했을 시 SSH, HTTP, HTTPS를 옵션에서 추가했었고,
포트도 그 때 정해지게 된다. 하지만 프로젝트 개발 시에는 포트를 로컬로 3050로 했다면
수정을 해줘야한다.

포트 수정

// 터미널에서 우분투로 실행을 해준다.
vim app.js

위 처럼 실행을 했을 시 vim 에디터로 .env 만들어준 것 처럼 작업을 해주면 된다.
a, i로 입력을 실행할 수 있고, 내용을 수정 후 esc를 누른 뒤 :wq로 저장 후 에디터에서 나오면 된다.

AWS 주의 점

여기서 AWS 주의 점은 현재 위 처럼 작업 후 연결을 하면 서버에 접속이 된다. 하지만 터미널을 끈다면? 연결이 해제된다.

현재 상태를 foreground process라고 하며, 터미널을 끄면 서버도 꺼지는 프로세스이다.

그렇지 않은 프로세스를 background process라고 하며, 터미널을 꺼도 서버는 꺼지지 않는다.

그럼 왜 foreground process로 실행되는가?

서버를 시작할 때 npm start 즉 node app으로 실행하는 경우에 foreground process로 실행하게 된다.

그럼 서버를 background process로 실행해보자.

pm2

pm2는 위에서 말한 background process로 실행 할 수 있도록 도와주는 패키지이다.

// pm2 설치
npm i pm2

// vim 에디터에서 수정
vim package.json

여기서 추가적으로 수정하는 부분은 기존 package.json에서 실행하는 scripts 부분이다.

// 현재 scripts
"scripts": {
  "start": "node app"
}

// 수정 scripts
"scripts": {
  "start": "pm2 start app.js"
}

여기서 실행 시 주의 점
우분투에서 실행하냐, root경로에서 실행하냐에 따라서 다르다.

우분투 - sudo npm start
root - npm start

root에서는 1023번까지의 포트를 실행시킬 수 있는 권한이 있다고한다. 우분투에서는 sudo로 실행을 해주자.

그리고 실행을 해보자!!! 그럼 아래처럼 터미널에 노출된다!!!

pm2 명령어

pm2는 위 처럼 background process라고 했다. 그 외에도 로깅을 해주거나, 서버가 꺼졌을때 다시 켜주는 좋은 기능이 있다고 한다.

  • sudo npx pm2 monit - 상태 확인 가능
  • sudo npx pm2 -logs - 로깅 확인
  • sudo npx pm2 logs --error - 에러 로깅 확인
  • sudo npx pm2 kill - 서버 종료
  • sudo npx pm2 list - 연결된 서버 리스트
  • sudo npx pm2 reload all - 서버 모두 재시동

좋은 웹페이지 즐겨찾기