MySQL 설치했는데 다음 단계가 막막 하다면, 꼭 필요한 설정 정리
MySQL 설치를 마치고 처음 접속에 성공했을 때, 많은 사람들이 문득 이런 생각을 하게 된다.
“접속은 됐는데… 이제 뭘 해야 하지?”
사실 이건 당연한 반응이다. 설치 튜토리얼은 넘쳐나지만, 설치 이후 무엇을 해야 하는지 친절하게 알려주는 글은 많지 않다. 이 글에서는 MySQL을 처음 다루는 분들이 설치 직후 반드시 해두어야 할 설정 5가지를 쉽게 풀어서 설명한다.
복잡한 개념보다는 “왜 해야 하는지”와 “어떻게 하는지” 중심으로 구성했으니, 천천히 따라오면 된다.
MySQL 설치 했다고 끝이 아닌 이유
MySQL을 처음 설치한 상태는 “막 개통한 빈 사무실”과 비슷하다. 전기는 들어오고 문도 열리지만, 자물쇠도 없고 책상도 없고 파일 정리도 안 된 상태다. 이 상태에서 바로 업무를 시작하면 나중에 문제가 생기기 마련이다.
아래 설정들을 빠뜨리면 이런 일이 생길 수 있다.
- 저장한 한글 데이터가
???또는 이상한 문자로 깨져서 나온다 - 다른 컴퓨터에서 접속이 안 된다
- 실수로 중요한 데이터를 통째로 삭제해도 막을 방법이 없다
- 나중에 문제가 생겼을 때 원인을 찾기 어렵다
이 5가지만 설정해두면 이런 문제의 대부분을 미리 막을 수 있다.
root 비밀번호 변경하기
root 계정이란
MySQL을 설치하면 root라는 기본 관리자 계정이 자동으로 생성된다. 컴퓨터로 치면 관리자 계정과 같은 것으로, 모든 것을 할 수 있는 최고 권한 계정이다.
문제는 이 계정의 초기 비밀번호가 단순하거나, 아예 설정이 안 된 경우도 있다는 것이다. 비밀번호가 약하면 외부에서 몰래 접속할 수 있는 위험이 생긴다.
root 계정 비밀번호를 변경하자
MySQL에 접속한 상태에서 아래 명령어를 입력하면 된다.
ALTER USER 'root'@'localhost' IDENTIFIED BY '새로운비밀번호';
FLUSH PRIVILEGES;
첫 번째 줄은 비밀번호를 바꾸는 명령이고, 두 번째 줄은 변경사항을 즉시 적용하는 명령이다. 아래와 같이 나오면 된다.
비밀번호는 영문 대소문자, 숫자, 특수문자를 섞어서 8자 이상으로 만드는 것을 권장한다. 예를 들어 MyPass!23 같은 식이다.
필자는 캡처화면을 위해 new1234 라는 비밀번호를 사용했지만 실제 저런 비밀번호를 사용해서는 안된다.
너무 단순한 비밀번호는 MySQL이 아예 오류를 내뱉는 경우도 있다.
일반 사용자 계정 따로 만들기
MySQL에서 일반 사용자 계정이 필요한 이유
방금 설명했듯이 root는 모든 걸 할 수 있는 계정이다. 그런데 바로 이 점이 위험하다. root로 작업하다 실수로 명령어를 잘못 입력하면 데이터베이스 전체가 날아가도 막을 방법이 없다.
그래서 실제 작업은 권한을 제한한 별도 계정으로 하고, root는 꼭 필요할 때만 쓰는 것이 기본 원칙이다. 마치 회사에서 대표 도장은 금고에 넣어두고, 일상 업무는 팀장 도장으로 처리하는 것과 같은 개념이다.
진행 방법
계정 만들기
CREATE USER 'myuser'@'%' IDENTIFIED BY '비밀번호';'myuser' 부분은 원하는 이름으로 바꾸면 된다. '%'는 어떤 컴퓨터에서든 접속할 수 있도록 허용한다는 의미다.
실행했을 때 아래와 같이 OK가 나오면 정상 실행된 것이다.
로컬(내 컴퓨터)에서만 쓸 거라면 '%' 대신 'localhost'를 쓰면 된다.
내 컴퓨터에서만 접속 허용할 때
CREATE USER 'myuser'@'localhost' IDENTIFIED BY '비밀번호';권한 주기
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'%';
FLUSH PRIVILEGES;
처음에는 어렵게 느껴질 수 있지만, 핵심은 간단하다. root 말고 별도 계정을 만들어서 사용하자.
한글 깨짐 방지: 문자셋을 utf8mb4로 설정하기
한글이 깨지는 이유
데이터베이스는 글자를 저장할 때 내부적으로 숫자로 변환해서 저장한다. 이때 어떤 방식으로 변환할지를 정해주는 것이 문자셋(Character Set) 이다.
MySQL의 기본 문자셋이 한글을 제대로 지원하지 않는 방식으로 설정되어 있으면, 저장할 때는 문제없어 보여도 꺼내올 때 ??? 또는 ìœì§€í˜¸ 같은 이상한 문자가 나온다.
이 문제는 처음에 제대로 설정해두지 않으면 나중에 고치기가 매우 번거롭다. 데이터가 이미 많이 쌓인 후에 고치려면 전체 마이그레이션 작업이 필요하기 때문이다.
설정 방법
MySQL 설정 파일을 열어서 아래 내용을 추가하거나 수정한다.
설정 파일 위치:
- Windows:
C:\ProgramData\MySQL\MySQL Server 8.0\my.ini - macOS:
/usr/local/etc/my.cnf - Linux:
/etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
위와 같이 설정하고 파일을 저장한 뒤 MySQL을 재시작하면 적용된다.
utf8mb4란?
MySQL에는
utf8이라는 설정이 있는데, 이름과 달리 한글은 되지만 이모지(😊) 같은 일부 문자는 저장이 안 된다.utf8mb4는 이 문제까지 해결한 완전한 버전이다. 처음부터utf8mb4를 쓰는 게 정답이다.
설정이 제대로 됐는지 확인하는 방법
SHOW VARIABLES LIKE 'character_set%';
결과에서 주요 항목들이 모두 utf8mb4로 나오면 성공이다.
실제로 사용할 데이터베이스 만들기
기본 설정 된 것을 사용하지 않는 이유
MySQL을 설치하면 information_schema, mysql, performance_schema 같은 데이터베이스가 이미 들어있다. 하지만 이것들은 MySQL 자체를 관리하기 위한 시스템 데이터베이스이므로, 여기에 내 데이터를 저장하면 안 된다.
내가 실제로 사용할 데이터베이스는 따로 만들어야 한다.
만드는 방법
CREATE DATABASE mydb
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;mydb 자리에 원하는 이름을 넣으면 된다. 어떤 용도인지 알 수 있는 이름으로 짓는 게 좋다. 예를 들어 쇼핑몰 프로젝트라면 shop_db, 블로그라면 blog_db 처럼 구분할 수 있게 넣어 주면 된다. 실행 시 아래와 같이 나오면 정상 실행된 것이다.
CHARACTER SET utf8mb4를 함께 써주면 3번에서 설정한 문자셋이 이 데이터베이스에도 적용된다. 빠뜨리지 말자.
만들어진 것 확인하기
아래 명령어를 수행하면 신규 DB가 정상 생성 되었는지 확인할 수 있다.
SHOW DATABASES;이 데이터베이스를 사용하겠다고 선택하기
USE mydb;
이제 이 안에 테이블을 만들고 데이터를 저장할 준비가 된 것이다.
외부 접속 허용 설정
외부 접속을 허용하는 이유
기본 설치 상태에서는 MySQL이 설치된 컴퓨터에서만 접속이 가능하다. 하지만 다음과 같은 경우에는 외부 접속 설정이 필요하다.
- 팀원의 컴퓨터에서 같은 데이터베이스에 접속해야 할 때
- 서버에 설치한 MySQL에 내 노트북에서 접속하고 싶을 때
- 웹 애플리케이션 서버가 데이터베이스 서버에 연결해야 할 때
설정 방법
1단계: 설정 파일에서 bind-address 변경
위에서 열었던 설정 파일에 아래 내용을 추가한다.
[mysqld]
bind-address = 0.0.0.00.0.0.0은 “어떤 IP에서든 접속 요청을 받겠다”는 의미다.
2단계: MySQL 재시작
# Windows는 서비스에서 MySQL을 재시작하거나:
net stop mysql
net start mysql
# macOS (Homebrew 설치 기준):
brew services restart mysql
# Linux:
sudo systemctl restart mysql3단계: 방화벽에서 포트 열기
MySQL은 기본적으로 3306번 포트를 사용한다. 방화벽이 이 포트를 막고 있으면 외부에서 접속이 안 된다.
# Ubuntu/Debian 계열
sudo ufw allow 3306/tcp
# CentOS/RHEL 계열
sudo firewall-cmd --add-port=3306/tcp --permanent
sudo firewall-cmd --reload주의:
외부 접속을 열면 누구나 접속을 시도할 수 있다. 비밀번호를 반드시 강하게 설정하고, 가능하면 허용할 IP를 지정하는 방식으로 쓰는 것이 안전하다. 공부용 로컬 환경이 아닌 실제 서비스 서버라면 보안 전문가의 도움을 받는 것을 권장한다.
설정 완료 후 확인 체크리스트
5가지 설정을 모두 마쳤다면 아래 항목들을 한 번씩 체크해보자.
| 순서 | 항목 | 확인 방법 |
|---|---|---|
| 1 | root 비밀번호 변경 | 새 비밀번호로 접속 재시도 |
| 2 | 사용자 계정 생성 | SELECT user, host FROM mysql.user; |
| 3 | 문자셋 utf8mb4 설정 | SHOW VARIABLES LIKE 'character_set%'; |
| 4 | 데이터베이스 생성 | SHOW DATABASES; |
| 5 | 외부 접속 설정 | 다른 기기에서 접속 테스트 |
마무리
MySQL은 설치가 끝이 아니라 시작이다. 이 글에서 다룬 5가지 설정은 데이터베이스를 안전하고 안정적으로 쓰기 위한 가장 기본적인 준비 작업이다.
처음에는 낯설고 어렵게 느껴질 수 있지만, 한 번만 제대로 해두면 이후 작업이 훨씬 수월해진다. 오늘 설명한 내용을 순서대로 따라해보고, 막히는 부분이 있다면 각 항목의 확인 명령어로 현재 상태를 점검해보자.
이 과정을 마쳤다면 다음 단계로 테이블 만들기 → 데이터 저장(INSERT) → 데이터 조회(SELECT) 순서로 MySQL을 본격적으로 사용해보는 것을 추천한다.





Add your first comment to this post