한국방송통신대학교/데이터과학 스터디
MySQL Workbench 사용법
easyfly
2025. 10. 28. 16:40
반응형
MySQL Workbench 사용법 — 화면 구성부터 실전 쿼리, 계정·백업·성능까지
1) 화면 빠르게 익히기 (스크린샷 기준 안내)
- Navigator(좌측 상단)
- Management: Server Status, Users and Privileges, Data Export/Import 등 관리 메뉴가 있습니다.
- Instance: Startup/Shutdown, Server Logs, Options File(설정 파일) 등 인스턴스 제어.
- Performance: Dashboard, Performance Reports, Performance Schema Setup.
- 메인 탭 영역(중앙)
- SQL 에디터(Query 1 등): 쿼리를 작성·실행하는 공간입니다. 위쪽의 번개 버튼이 실행(전체/선택).
- Administration – Server Status: 현재 접속된 서버의 버전, 포트, 디렉터리, 로그 경로를 확인합니다.
- 하단 Output 패널
- 실행 결과 메시지, 오류, 경과 시간을 보여줍니다.
- 우측 상단 도구막대
- 실행(번개), 스크립트 저장, 포맷, 힌트 등.
팁: 화면 상단 Home 아이콘 → MySQL Connections에서 접속을 추가·편집합니다. 원격 서버는 Host, Port(3306), Username, 필요시 SSL 설정을 확인하십시오.

2) 첫 연결과 기본 쿼리 실행
- 연결 만들기
- Home → + → Connection Name 지정 → Hostname/IP, Port(기본 3306), Username 입력 → Test Connection로 확인 → OK.
- SQL 편집기 열기
- 연결을 더블클릭 → 상단 Query 1 탭에 쿼리 작성.
- 샘플 실행
- 번개 아이콘(Execute)으로 실행 → 하단 Action Output 및 결과 그리드 확인.
- SELECT VERSION(); SHOW DATABASES;

3) 스키마(데이터베이스)와 테이블 만들기
- 스키마 생성
- 좌측 Schemas를 새로고침(우클릭 Refresh All)하면 demo가 보입니다.
- CREATE DATABASE demo DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
- 사용 스키마 선택
- USE demo;
- 테이블 생성
- CREATE TABLE posts ( id INT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(200) NOT NULL, body TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
- 데이터 입력/조회
- INSERT INTO posts (title, body) VALUES ('첫 글', '워크벤치에서 올린 글입니다.'); SELECT * FROM posts ORDER BY id DESC;
팁: 결과 그리드에서 직접 셀 편집 후 Apply를 누르면 GUI로도 수정·삽입이 가능합니다.
4) 계정과 권한 관리(Users and Privileges)
- 관리 화면 열기
- Navigator → Management → Users and Privileges.
- 새 사용자 추가
- Add Account → Login Name(appuser) 입력 → 인증 방식, 비밀번호 설정.
- 권한 부여
- 좌측 사용자 선택 → Schema Privileges 탭 → Add Entry → 특정 스키마(demo) 선택 → SELECT, INSERT, UPDATE, DELETE, CREATE 등 필요한 권한을 체크 → Apply.
- 원격 접속 허용 필요 시
- 사용자를 user@'%' 또는 특정 클라이언트 IP로 생성해야 합니다.
CREATE USER 'appuser'@'%' IDENTIFIED BY '비밀번호'; GRANT ALL PRIVILEGES ON demo.* TO 'appuser'@'%'; FLUSH PRIVILEGES;- 서버 방화벽에서 3306/TCP 허용, MySQL 설정의 bind-address(0.0.0.0 또는 해당 NIC) 확인이 필요합니다.
5) 백업·복구(Data Export / Import)
- 백업(Data Export)
- Navigator → Management → Data Export
- 백업할 스키마/테이블 선택 → Export to Self-Contained File(단일 .sql) 권장 → Start Export.
- 복구(Data Import/Restore)
- Data Import/Restore → Import from Self-Contained File 선택 → 대상 스키마 지정(없다면 Create New로 생성) → Start Import.
팁: 대용량 환경에서는 mysqldump/물리 백업(Percona XtraBackup 등)도 고려하십시오. 워크벤치는 논리 백업 기반으로 휴대성과 가독성이 좋습니다.
6) 서버 상태·로그·변수 점검
- Server Status: 업타임, 포트, 에러로그 경로(/var/log/mysql/error.log 등) 확인.
- Server Logs: 최근 에러/일반 로그를 바로 조회합니다. 연결 문제나 쿼리 오류 원인을 빠르게 파악합니다.
- Options File: mysqld의 주요 옵션을 GUI로 보고 저장할 수 있습니다(재시작 필요할 수 있음).
- Status and System Variables: autocommit, innodb_buffer_pool_size, max_connections 등 상태/변수를 검색해 점검합니다.
7) 성능 진단(Performance)
- Dashboard: 연결 수, 트래픽, InnoDB 버퍼풀 사용률 등 요약 모니터링.
- Performance Reports: Top I/O By Schema/Table, Statements With Full Table Scans, High Cost SQL 등 사전 정의 리포트로 병목을 찾습니다.
- Performance Schema Setup: 필요시 Performance Schema 활성화/튜닝.
팁: 느린 쿼리는 EXPLAIN과 Visual Explain(툴바)로 실행 계획을 확인하고, 인덱스 추가·쿼리 리라이트를 검토하십시오.
8) 자주 쓰는 기능·단축키
- 자동완성: Ctrl + Space
- 선택 영역만 실행: 쿼리 일부 선택 후 실행(번개)
- 포맷(Beautify): Ctrl + B
- 결과 내 필터: 결과 그리드 상단 필터창에서 즉석 검색
- EER 다이어그램: 상단 메뉴 File → New Model → Reverse Engineer로 DB를 다이어그램으로 뽑아 문서화
9) 연결·권한 트러블슈팅 체크리스트
- 네트워크: 서버 IP/포트 3306 접근 가능 여부(Telnet/Netcat)
- 방화벽: 서버(UFW/iptables)와 클라우드 보안그룹에서 3306 허용
- 바인드 주소: bind-address가 0.0.0.0 또는 서버 NIC IP인지
- 계정 호스트: 'user'@'%' 또는 정확한 클라이언트 IP로 생성되었는지
- 인증 방식: MySQL 8의 caching_sha2_password vs mysql_native_password 호환성
- 권한 범위: 필요한 스키마에 권한 부여 되었는지, FLUSH PRIVILEGES 수행 여부
10) 실무 예시 시나리오(끝까지 한 번에)
- 새 앱용 데이터베이스와 사용자 만들기
- CREATE DATABASE appdb DEFAULT CHARACTER SET utf8mb4; CREATE USER 'app'@'%' IDENTIFIED BY 'StrongPW!'; GRANT ALL PRIVILEGES ON appdb.* TO 'app'@'%'; FLUSH PRIVILEGES;
- 테이블/인덱스 구성
- USE appdb; CREATE TABLE members( id BIGINT PRIMARY KEY AUTO_INCREMENT, email VARCHAR(255) NOT NULL UNIQUE, name VARCHAR(100) NOT NULL, joined_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, KEY idx_joined_at (joined_at) );
- 성능 확인
- 대용량 조회 쿼리에 WHERE joined_at BETWEEN ...를 사용한다면, idx_joined_at로 범위 스캔되는지 EXPLAIN 확인.
- 백업
- Data Export로 appdb를 Self-Contained File로 스케줄링(정기 백업은 OS 크론+mysqldump 권장).
- 오류 발생 시
- Server Logs에서 에러 코드 확인 → 필요한 경우 Options File의 변수 조정 후 재시작.
마무리
이 가이드만 따라도 연결 → 스키마/테이블 생성 → CRUD 실행 → 계정/권한 관리 → 백업/복구 → 성능 점검의 전 과정을 MySQL Workbench에서 안정적으로 수행하실 수 있습니다.
반응형