1. MySQL WorkBench 폰트 변경

 

2. "이것이 MySQL이다" 샘플DB employee 추가하기

더보기

1. 예제 다운받을 폴더로 이동하고, 터미널 실행(or 터미널에서 다운받을 경로 설정)

 

 

 

 

2. 예제 파일 다운로드

 

wget http://download.hanbit.co.kr/mysql/8.0/employees.zip

링크: http://download.hanbit.co.kr/mysql/8.0/employees.zip

 

 

 

 

3. 다운로드한 파일의 권한 확인 및 필요시 변경

 

 

 

 

4. 압축 해제

unzip employees.zip -d [새폴더명]

 

 

 

 

5. mysql 접속

 

 

 

 

6. 샘플 데이터베이스 가져오기

source 압축해제경로/employees.sql

 

 

 

 

7. 가져온 샘플 데이터베이스 확인


 

3. MySQL 네트워크 상태 확인

더보기

A. mysql 원격 연결 확인

A.1 IP 확인
ip addr show
  • IP 주소와 네트워크 관련 정보를 출력
  • 접속할 서버의 IP  확인

 

 

 

 

A.2 DB 서버 ping 확인
ping 10.10.21.xxx
ping google.com
  • 내 컴퓨터와 다른 컴퓨터(서버, 장비 등) 사이의 네트워크 연결이 살아 있는지, 통신이 가능한지 확인
  • 접속할 서버의 IP로 통신  확인



 

 

A.3 mysql 원격 연결
mysql -u [사용자ID] -p -h [서버IP 또는 도메인] -P [포트번호]
  • 접속할 서버의 MySQL 아이디, 비밀번호, IP, Port 사용해 접속

 

4.  MySQL 외부 접속 허용 설정

: 참고 링크 - [Database] Workbench 연결 오류 해결

더보기

1. mysqld.cnf 수정(메모장 or nano)

/etc/mysql/mysql.conf.d/ 경로로 이동

 

 

 

 

2. mysql 설정 파일의 bind-address 수정

# bind-address		= 127.0.0.1 # 로컬에서만 MySQL 접속 허용 >> 주석처리
bind-address		= 0.0.0.0   # 	외부 포함 모든 곳에서 접속 허용 추가

 

 

 

 

3. mysql  재시작

sudo systemctl restart mysql

 *만약 노란색 경고 메시지 표시된다면, 안내 메시지처럼 systemctl daemon-reload 실행

 

 

 

 

4.  mysql 방화벽 허용

sudo ufw allow 3306/tcp
  • 3306/tcp는 MySQL의 기본 포트
  • 이 명령은 "이 서버로 들어오는 3306번 포트의 TCP 연결"을 모두 허용한다는 의미
  • 즉, 외부(로컬 네트워크/인터넷)에서 이 서버의 3306 포트로 접근이 가능
4.1 특정 ip만 허용
sudo ufw allow from 192.168.0.10 to any port 3306 proto tcp​

4.2 특정 포트 닫기
sudo ufw deny 3306/tcp


4.3 (마지막에 마지막으로 안될시 시도할 것) ufw 방화벽 끄기

sudo systemctl stop ufw // 방화벽 끄기
sudo systemctl stats ufw // 방화벽 상태 확인


5. MySQL 계정 생성 + 원격 접속 테스트

: Ubuntu 24.04 + MySQL(8.x) 기본 설정은, root 계정으로 원격 접속 불가능

더보기

1. 외부 접속 테스트용 user1 계정 생성

CREATE USER IF NOT EXISTS 'user1'@'%' IDENTIFIED WITH mysql_native_password BY '1234';
GRANT ALL PRIVILEGES ON *.* TO 'user1'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

 

 

 

 

2 생성된 계정으로 접속 테스트

 

 

 

 

3. 외부에서 mysql 원격 연결

mysql -u [사용자ID] -p -h [서버IP 또는 도메인] -P [포트번호]
  • 접속할 서버의 MySQL 아이디, 비밀번호, IP, Port 사용해 접속

 

99. 한글 인코딩 설정

: 우분투24 이상의 경우, 진행하지 않는다.

더보기

"우분투 24 이상 + mysql 8.0 이상" 이라면,

한글 입출력 사용에 문제가 없는 자동으로 utf8mb4 기반으로 설정되어 있다.

SHOW VARIABLES WHERE Variable_name IN (
  'character_set_server', 'collation_server',
  'character_set_client', 'character_set_connection',
  'character_set_database', 'max_allowed_packet'
);

 


(경우1.) 하지만 latin1 또는 utf8(utf8mb3)이면 이모지/일부 특수 문자 깨질 수 있고,
(경우2.) 애플리케이션(클라이언트)이 DB 접속 시 별도 문자셋을 지정(예: MySQL Connector 등에서 SET NAMES latin1 등)하는 경우에도 한글 및 문자가 깨질 수 있다.



1. mysqld.cnf 파일 내용 수정(nano 이용)

/etc/mysql/mysql.conf.d 경로로 이동

 

# 클라이언트가 MySQL 서버에 접속할 때 자동 실행되는 SQL (utf8mb4 + 최신 콜레이션 적용)
init_connect='SET collation_connection = utf8mb4_0900_ai_ci'
init_connect='SET NAMES utf8mb4'

# 새로 생성되는 DB, 테이블, 컬럼의 기본 문자셋과 콜레이션 지정
character-set-server = utf8mb4
collation-server = utf8mb4_0900_ai_ci

# 클라이언트 문자셋 협상 무시: 항상 서버의 utf8mb4 강제 적용
skip-character-set-client-handshake

# 최대 패킷 크기(1GB, 필요시 조정)
max_allowed_packet = 1024M

 

 

2.  mysql 재시작

sudo systemctl restart mysql

 

 

3. 설정 적용 확인

SHOW VARIABLES WHERE Variable_name IN (
  'character_set_server', 'collation_server',
  'character_set_client', 'character_set_connection',
  'character_set_database', 'max_allowed_packet'
);