1. MySQL Workbench 사용 방법
◎ MySQL Workbench의 발전과정
▷ 2002년에 만들어진 DBDesigner4 제품
▶ MySQL의 비주얼 툴로 사용
▷ 2003년에 MySQL GUI Tools Bundle로 통합
▶ 2005년에 MySQL Workbench 프리뷰버전으로 변경되어 발표
▶ 2007년부터 본격적으로 개발되고 버전이 업그레이드
▷ MySQL 5.0 버전부터 본격적으로 MySQL의 GUI 툴로 제공
▶ Workbench 5.0 버전은 Windows용으로만 제공
▶ 5.1 버전에서 다른 운영체제도 지원
▶ 2018년에 8.0 버전 발표
◎ Workbench의 주요한 기능
▷ 데이터베이스 연결 기능
▷ 인스턴스 관리
▷ 위저드를 이용한 MySQL의 동작
▷ 통합된 기능의 SQL 편집기
▷ 데이터베이스 모델링 기능
▷ 포워드/리버스 엔지니어링 기능
▷ 데이터베이스 인스턴스 시작/종료
▷ 데이터베이스 내보내기/가져오기
▷ 데이터베이스 계정 관리
◎ MySQL Workbench의 버전과 실행
▷ Windows [시작] → [모든 앱] → [MySQL] → [MySQL Workbench 8.0 CE]
◎ MySQL Workbench 사용 방법
1. [MySQL Connection] 창
▷ Workbench 실행
▷ [MySQL Connections] 창
▶ 접속될 서버와 사용자, 포트를 선택한 후 접속, MySQL에 등록된 사용자만 접속 가능
▶ 서버 등록시 여러개 등록 가능, Connection Name : 접속하는 이름
2. [Connection] 탭
▷ Connection Method
▶ Standard(TCP/IP), Local Socket/Pipe, Standard TCP/IP over SSH, MySQL Fabric Management Node
등 4가지 중에 선택 가능
▶ 대부분 Standard(TCP/IP) 사용
3. [Parameters] 탭
▷ Hostname
▶ localhost = 127.0.0.1 = 자신이 컴퓨터(MySQL이 설치된 컴퓨터)
▶ 접속할 컴퓨터가 외부에 있다면 접속할 서버 컴퓨터의 IP주소 입력
▷ Port
▶ 접속할 MySQL 포트 번호, 특별한 경우가 아니면 3306
▷ Username, Password, Default Schema 입력
4. [SSL] 탭
▷ SSL (Secure Socekt Layer)
▶ 보안을 위한 암호 규약, 서버와 클라이언트 통신시 암호화 통해 비밀 유지 & 보안 강화
5. [Advanced] 탭
▷ 프로토콜의 압축, 인증 방식 등을 설정
5. [Remote Management] 탭
▷ 원격 관리 위해 설정하는 부분
▷ 이 부분이 활성화 되기 위해서는 Hostname이 실제 IP 주소
▷ 'Native Windows remote management' 선택
▶ MySQL 서버가 설치된 OS가 Windows인 경우에만 설정 가능
▷ 'SSH login based management'는 SSH 서버 기반으로 원격 접속
6. [System Profile] 탭
▷ 접속할 서버의 OS 종류 및 MySQL 설정 파일의 경로 등을 설정
▷ [Remote Management]에서 'Native Windows remote management'나
'SSH login based management'가 선택되어 있어야 활성화
▷ [System Type]은 FreeBSD, Linux, MacOS X, OpenSolaris, Windows 등 5가지 중 선택
▶ [Installation Type]을 선택 가능
▷ [Configuration File]
▶ MySQL의 설정 파일이 경로와 함께 지정
▷ [Configuration File Section]
▶ 서버의 서비스 이름 지정
▷ [MySQL Management]
▶ MySQL 서비스를 시작하거나 중지하는 시스템 명령어
◎ MySQL Workbench의 화면 구성
▷ 3개의 패널과 쿼리 창으로 구성
▷ 내비게이터, Output, SQL Additions
◎ 내비게이터(Navigator)
▷ MySQL의 관리 및 운영을 위한 강력한 도구
▷ MySQL 명령문이나 SQL문을 모르더라도 대부분의 작업 수행 가능
▷ 내비게이터의 역할
▶ [Schemas] 탭
→ 데이터베이스(=스키마) 생성 및 삭제
→ 데이터베이스 개체(테이블, 뷰, 인덱스, 저장 프로시저, 함수 등)를 생성하고 관리
→ 데이터베이스의 속성 조회
▶ [Management] 탭
→ MANAGEMENT
→ INSTANCE
→ PERFORMANCE
▷ [Navigator]의 [Schemas]는 트리 형태
▷ 각각의 항목은 '▶'를 이용해 확장 가능
◎ 내비게이터의 [Schemas] 탭 이용해 SQL문 자동 생성
▷ 테이블 생성 이외에도 뷰와 다른 구문을 다룰 수 있습니다.
▷ 테이블 선택 → Send to SQL Editor → Create Statement
◎ 네비게이터의 [Administration] 탭 이용해 MySQL 관리
1. [MANAGEMENT 부분]
▷ [Server Status]
▶ 현재 접속된 서버의 상태 파악 가능
▶ 현재 서버의 가동 상태, 포트, 환경 파일의 경로, 메모리 상태, CPU 사용 상태 확인 가능
▷ [Client Connections]
▶ 연결된 클라이언트의 현재 상태가 휴면(Sleep)인지 여부 확인
▶ 해당 연결에서 마우스 오른쪽 버튼을 클릭, [Kill Connection(s)]로 연결을 강제로 끊을 수 있습니다.
▷ [Users and Privileges]에서 MySQL 사용자 관리
▷ [Status and System Variables]
▶ MySQL 서버에 설정된 시스템 변수들 확인 / 변경
▷ [Data Export] 및 [Data Import/Restore]
▶ 백업 및 복원과 관련된 부분
2. [INSTANCE] 부분
▷ [Startup/Shutdown]
▶ MySQL 서버의 현재 작동 상태 확인
▶ MySQL 서버의 중지와 시작 설정
▷ [Server Logs]
▶ 서버에 기록된 오류, 경고, 방화벽 등의 로그 확인
▷ [Options File]
▶ MySQL의 핵심 설정 파일인 my.ini 파일
▶ 파일 설정 내용을 GUI 모드로 보여줌
3. [PERFORMANCE] 부분
▷ [Performance Reports]
▷ [Dashboard]
▶ 네트워크, MySQL 서버, InnoDB의 상태를 그래픽으로 보여줌
▶ 입출력이 오래 걸린 파일, 비용이 많이 든 쿼리문, 데이터베이스 통계 등의 항목들 조회
▶ 결과 내보내기 가능
▷ [Performance Schema Setup]
▶ 성능에 대한 설정
▶ 오른쪽 위 <Show Advanced>나 <Hide Advanced> 클릭하면 세부적인 설정 확인 가능
◎ 쿼리 창(Query Editor)
▷ 쿼리 문장(SQL 구문)을 입력/실행하는 텍스트 에디터
▷ 쿼리 창 사용 방법
▶ Workbench의 상단 제일 왼쪽의 <Create a new SQL tab for executing queries> 아이콘 클릭 또는
Workbench 메뉴의 [File] → [New Query Tab]을 클릭해 쿼리 창 열기
▶ 작업할 데이터베이스를 [Schemas] 탭에서 더블클릭해 선택
▶ SQL문 문법에 맞게 입력
▶ SQL 구문에 이상이 없다면 툴바의 <Execute the selected portion~~> 아이콘을 클릭하거나 Ctrl + Shift + Enter 눌러서 SQL 문장 실행
▶ 아래쪽의 결과 창을 통해 결과 확인
→ 성공된 결과 또는 오류 메시지 확인
▷ 한번 연 쿼리 창은 계속해서 SQL 입력해 사용 가능
◎ Workbench의 편리한 기능
1. 쿼리 창에서 개체 드래그해서 자동 완성 기능
2. 예약어 대문자나 소문자로 변경하기
▷ [Edit] → [Format] 활용
▶ UPCASE Keywords 선택 - 대문자로 변경
▶ lowercase Keywords 선택 - 소문자로 변경
3. SQL 코드나 설명의 주석처리 방법
▷ 주석 처리할 부분 드래그 후 [Edit] → [Format] → [Un/Comment Selection] 선택
▷ 한줄은 '--', 여러줄은 '/* */'로 주석 처리 가능
4. 여러 개의 SQL문 실행 가능
▷ 모든 SQL문을 실행하지 않는다면 일부만 드래그 선택해 실행
5. 결과를 다양한 방식으로 필터링하거나 파일 형태 저장 가능
6. 실행되는 SQL문 실행 계획 확인 가능
▷ 결과 창의 오른쪽 제일 아래로 내려서 [Execution Plan]을 클릭
▷ 결과의 그림에 마우스를 올려놓으면 상세한 내용도 확인 가능
2. 외부 MySQL 서버 관리하기
◎ 네트워크 환경 비교
▷ Windows 1대에 서버와 클라이언트가 모두 설치되된 상태
▷ Linux 설치된 MySQL Server에 Windows에 설치된 Workbench가 접속된 상태
◎ Workbench로 Linux MySQL 서버에 접속한 경우 주의해야 할 점
▷ Linux 컴퓨터 방화벽 설정
▶ MySQL의 포트인 3306번을 허용하도록 설정해야 함
▷ Linux 컴퓨터의 IP주소를 알고 있어야함
▷ Windows 컴퓨터의 Workbench에서 Linux 컴퓨터로 연결고리 만들어 놓아야 합니다.
3. 사용자 관리하기
◎ DB 사용자 관리의 필요성
▷ 현재까지 사용 방법
▶ MySQL 관리자인 root로 접속해 사용
▷ 실무에서의 문제
▶ MySQL 데이터베이스를 다양한 사용자나 응용프로그램에서 접속해 사용함
▶ 모든 사용자가 관리자로 접속을 한다면 데이터가 유출되거나 증발하는 끔찍한 일이 일어날 수 있음
◎ MySQL의 사용자 및 역할/권한 관리 실습
1. 팀장님 (Director)
▷ 데이터베이스 관리자(DBA)의 역할 부여
▷ Workbench 실행하고 [Local instance MySQL]을 클릭해서 접속
▶ 사용자를 생성하는 권한은 root에게만 있음
▷ [Navigator]의 [Administration] 탭 → [Users and Privileges] 클릭
▷ [Users and Privileges] 창에서 오니쪽 아래 <Add Acount> 클릭 후 [Login] 탭의 [Login Name]에 'director' 입력
▶ 비밀번호 입력하고 <Apply> 클릭 → director 사용자 등록 확인
▷ [Acoount Limits] 탭으로 쿼리 한계 설정 → 0은 제한 없음
▷ [Administrative Roles] 에서는 MySQL 자체에 대한 권한 설정
▶ [Role]의 <DBA> 체크하여 모든 권한 설정 적용
2. 사장님(CEO)
▷ MySQL의 모든 데이터에 읽기 (Select) 권한 부여
▷ 계정 등록방법은 '팀장님'의 경우와 같음
▷ [Administrative Roles] 탭 클릭
▶ 사장님은 MySQL의 읽기(Select)로 계획되어 있음
▶ [Global Privileges] 중에서 <SELECT> 체크
▶ 왼쪽 Role 중에 <Custom>이 자동으로 체크
3. 일반 직원(staff)
▷ ShopDB 데이터베이스의 모든 테이블에 대해 읽기(Select), 쓰기(Insert, Update, Delecte) 권한 부여
▷ 스토어드 프로시저 등을 생성(Create Routine)하고 수정(Alter Routine)할 수 있는 권한 부여
▷ employees 데이터베이스의 테이블에 대해서는 읽기(Select) 권한 부여
▷ 각 사용자별 권한 확인
◎ CMD창 코드
1. 팀장(director) : 관리자 DBA 권한
▷ TUI
▷ CREATE USER 사용자명@ '접속할 IP 대역, IP' IDENTIFIED BY '패스워드';
▷ CREATE USER director@ '%' IDENTIFIED BY 'director';
◎권한 부여
▷ GRANT 권한 ON 데이터베이스.테이블 TO director@'%' WITH 권한 설정;
▷ GRANT ALL ON *.* TO director@'%' WITH GRANT OPTOION;
2. 사장님(CEO) : 읽기만 가능
▷ CREATE USER ceo@'%' IDENTIFIED BY 'ceo';
▷ GRANT SELECT ON *.* TO ceo@'%';
3. 일반직원(Staff) : 특정 DB만 들어가고 shopdb(읽기/쓰기), employees(읽기) 설정
▷ CREATE USER staff@'%' IDENTIFIED BY 'staff';
▷ GRANT SELECT, INSERT, UPDATE, DELETE ON shopdb.* TO staff@'%';
▷ GRANT SELECT ON employees.* TO staff@'%';
◎ 서버의 비중
리눅스가 80~90
윈도우는 10~20
MySQL의 유틸리티 사용 방법에 대해 익혀보았습니다.
왠만하면 [Administration] 탭을 수정하지 않아야합니다!!
그 이유는 한 번 잘못 수정하게 되면 이후에 사용할때 문제가 발생할 수 있기때문입니다.
많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~
'BackEnd > DB(SQL)' 카테고리의 다른 글
[DB_MySQL] 이것이 MySQL이다 ch06 SQL 기본 문법 2 (WHERE, BETWEEN, IN, LIKE, 서브쿼리) (0) | 2023.02.06 |
---|---|
[DB_MySQL] 이것이 MySQL이다 ch06 SQL 기본 문법 1 (SELECT, FROM) (0) | 2023.02.05 |
[DB_MySQL] 이것이 MySQL이다 ch04 데이터베이스 모델링 (0) | 2023.02.03 |
[DB_MySQL] 이것이 MySQL이다 ch03(MySQL 전체 운영 실습) (0) | 2023.02.02 |
[DB_MySQL] 이것이 MySQL이다 ch01(DBMS, MySQL) (0) | 2023.02.02 |