[eGovFramework] Ubuntu 가상머신 WAR 배포를 위한 준비 2 - MySQL 설치, MySQL Workbench 접속 테스트

EUN JY·2022년 8월 25일
1

eGovFrame

목록 보기
4/6

1. MySQL 설치

egov@egov-server:/$ sudo apt-get update
egov@egov-server:/$ sudo apt-get install mysql-server
  • 외부 접속 기능 설정 (MySQL Workbench 사용 가능하도록 포트 3306 오픈)
egov@egov-server:/$ sudo ufw enable
egov@egov-server:/$ sudo ufw allow mysql
  • MySQL 실행 및 서버 재시작 시 자동 재시작 설정
egov@egov-server:/$ sudo systemctl start mysql
egov@egov-server:/$ sudo systemctl enable mysql

1-1. MySQL 스키마, 사용자 생성

  • MySQL 접속 (root 계정 비밀번호 : 1111)
egov@egov-server:/$ sudo /usr/bin/mysql -u root -p

1-1-1. 스키마 생성

CREATE SCHEMA EGOV_HOME;
USE EGOV_HOME;

1-1-2. 사용자 생성

  • egov_home 스키마 사용할 사용자 생성 (root는 접속이 불가능)
    • 인증 방식 옵션 추가하여 사용자 생성
    • MySQL 5.7 버전까지는 Native Authentication이 기본 인증 방식 (mysql_native_password)
    • MySQL 8.0 부터는 Caching SHA-2 Authentication이 기본 인증으로 변경됨 (caching_sha2_password)
CREATE USER 'egov'@'%' IDENTIFIED WITH 'mysql_native_password' BY '1111';
CREATE USER 'egov'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY '1111';
FLUSH PRIVILEGES;

  • 사용자를 삭제해야 할 경우 아래 명령어 입력
DROP USER 'egov'@'localhost';
DROP USER 'egov'@'%';
  • egov_home 스키마 사용할 사용자에게 권한 부여
    • MySQL 8 버전부터는 사용자 생성, 권한 부여 명령을 별도로 실행해야 함
GRANT ALL PRIVILEGES ON egov_home.* TO 'egov'@'%';
GRANT ALL PRIVILEGES ON egov_home.* TO 'egov'@'localhost';
FLUSH PRIVILEGES;
SHOW GRANTS FOR 'egov'@'localhost';
SELECT User, Host, authentication_string FROM mysql.user;

1-1-3. MySQL 버전 확인

show variables like "%version%";

1-2. MySQL 외부 접속 설정

  • 외부 접속을 위한 추가 설정 > bind-address, mysqlx-bind-address 값 변경
egov@egov-server:/etc/mysql/mysql.conf.d$ cd /etc/mysql/mysql.conf.d
egov@egov-server:/etc/mysql/mysql.conf.d$ sudo vi mysqld.cnf
  • MySQL 재시작
egov@egov-server:/etc/mysql/mysql.conf.d$ sudo systemctl restart mysql
  • ip 주소 및 포트 체크
    • 기존 127.0.0.1:3306 > 0.0.0.0:3306
egov@egov-server:/$ netstat -tnlp

  • 포트 관련하여 설정 파일 수정
egov@egov-server:/etc/mysql/mysql.conf.d$ cd /etc/mysql/mysql.conf.d
egov@egov-server:/etc/mysql/mysql.conf.d$ sudo vi mysqld.cnf
  • 포트 정보 주석 제거, 포트 번호 세팅 후 저장
  • MySQL 재시작
egov@egov-server:/etc/mysql/mysql.conf.d$ sudo systemctl restart mysql
  • MySQL 프로세스 실행 여부, 포트 사용중 여부 확인
egov@egov-server:/$ ps -ef | grep mysql
egov@egov-server:/$ netstat -ntap | grep LISTEN
egov@egov-server:/$ netstat -ntap | grep 3306

2. MySQL Workbench 접속

  • 아래와 같이 정보 입력하여 Connection 생성
  • C:\Users\Ynjch\egovWorkspace01\sample\DATABASE 경로에서 아래 파일 확인
    • all_sht_ddl_mysql.sql
    • all_sht_data_mysql.sql
  • MySQL Workbench > File > Run SQL Script 로 두 sql 파일 실행
    • Default Schema Name : egov_home
    • Default Character Set : utf8
  • 아래 쿼리 실행하여 정상 반영되었는지 확인
SELECT * FROM COMVNUSERMASTER;

2-1. MySQL Workbench 접속 오류

  • MySQL 외부 접속 오류 해결 방법 참고
  • 아래와 같은 팝업창이 뜨면 외부에서 접속할 경우 접속 권한이 없는 것
  • 아래 명령어 추가 입력하여 결과 확인
    • sudo ufw status 결과, 등록이 안됐을 경우 Status: inactive로 나옴
egov@egov-server:/$ sudo ufw enable
egov@egov-server:/$ sudo ufw allow out 3306/tcp  
egov@egov-server:/$ sudo ufw allow in 3306/tcp  

profile
개린이

0개의 댓글