MySQL Workbench warning when connecting to MariaDB

MariaDB 원격 접속과 MySQL Workbench 연결 방법 (2026년 기준)

CentOS에서 MariaDB를 설치하고 MySQL Workbench로 접속할 때 나타나는 호환성 경고와 원격 접속 설정을 정리합니다. 기존 MariaDB 10.5·10.11 사례를 포함하되, MariaDB 10.11·11.4·11.8 LTS 및 12.x 계열에도 적용할 수 있는 계정 관리 방식을 중심으로 설명합니다. 서버 배포판과 MariaDB 패키지에 따라 설정 파일 위치는 다릅니다.

1. 설치된 MariaDB 버전과 서비스 확인

mariadb --version
sudo mariadb -e "SELECT VERSION();"
sudo systemctl status mariadb
sudo ss -lntp | grep 3306

MariaDB 10.4부터 Linux 설치에서는 root의 unix_socket 인증이 흔하므로 sudo mariadb로 로컬 관리자에 접속합니다. root의 원격 접속을 위해 인증 방식을 무리하게 바꾸지 마세요.

2. MariaDB 설정 파일 위치 확인

배포판대표적인 설정 파일
Ubuntu / Debian/etc/mysql/mariadb.conf.d/50-server.cnf
CentOS / Rocky / AlmaLinux/etc/my.cnf.d/server.cnf 또는 /etc/my.cnf.d/mariadb-server.cnf
mariadbd --help --verbose
sudo grep -R "bind-address" /etc/mysql /etc/my.cnf /etc/my.cnf.d 2>/dev/null

실제 설정 파일과 적용 순서를 확인한 뒤 수정합니다. 운영 서버라면 먼저 설정 파일을 백업하세요.

3. 원격 접속을 위한 bind-address 설정

원격 접속이 필요한 네트워크 인터페이스에만 바인딩하는 것을 권장합니다. 아래 192.0.2.10은 설명용 서버 IP이며 실제 서버에 할당된 주소로 교체해야 합니다. MariaDB 10.11 이상에서는 여러 주소를 쉼표로 지정할 수도 있습니다.

[mysqld]
bind-address = 192.0.2.10

모든 IPv4 인터페이스를 수신해야 하는 특별한 환경에서는 bind-address = 0.0.0.0을 사용할 수 있지만, 이 경우에도 방화벽에서 허용 IP를 제한해야 합니다. skip-networking이 활성화되어 있다면 TCP 접속이 차단됩니다.

sudo systemctl restart mariadb
sudo ss -lntp | grep 3306

4. root 대신 전용 원격 접속 계정 생성

기존 글의 UPDATE mysql.user SET Host=’%’ WHERE User=’root’ 및 RENAME USER ‘root’@’localhost’ TO ‘root’@’%’ 방식은 권장하지 않습니다. MariaDB 10.4 이후 mysql.user는 mysql.global_priv를 기반으로 하는 호환성 뷰이며, root를 외부에 노출하면 보안 위험이 커집니다.

아래는 관리 대상 데이터베이스 appdb와 접속을 허용할 클라이언트 IP 198.51.100.25를 사용하는 예시입니다. 두 값과 암호를 실제 환경에 맞게 변경하세요.

sudo mariadb

CREATE USER 'workbench_user'@'198.51.100.25'
  IDENTIFIED BY 'REPLACE_WITH_A_LONG_UNIQUE_PASSWORD'
  REQUIRE SSL;

GRANT SELECT, INSERT, UPDATE, DELETE
  ON appdb.* TO 'workbench_user'@'198.51.100.25';

SHOW GRANTS FOR 'workbench_user'@'198.51.100.25';
SELECT User, Host FROM mysql.user;
EXIT;

위 SQL은 서버에 TLS 인증서가 올바르게 설정된 경우의 예시입니다. TLS가 구성되지 않았다면 먼저 인증서를 설정하거나 SSH 터널 방식(아래 6단계)을 사용하세요. 데이터베이스·테이블 생성 권한이 필요할 때만 CREATE, ALTER 등 필요한 권한을 추가합니다. 계정 생성이나 권한 부여 후에는 일반적으로 FLUSH PRIVILEGES가 필요하지 않습니다.

5. 방화벽에서 신뢰할 수 있는 IP만 허용

예시 클라이언트 IP는 198.51.100.25입니다. 인터넷 전체에 3306 포트를 개방하는 명령은 사용하지 않습니다.

Ubuntu UFW

sudo ufw allow from 198.51.100.25 to any port 3306 proto tcp
sudo ufw status numbered

Rocky / AlmaLinux / CentOS Stream (firewalld)

sudo firewall-cmd --get-active-zones
sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="198.51.100.25/32" port port="3306" protocol="tcp" accept' --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --zone=public --list-all

실제 네트워크에 적용된 firewalld zone을 확인한 뒤 public을 적절한 zone 이름으로 바꾸세요. 클라우드 보안 그룹과 공유기 포트포워딩도 별도로 점검해야 합니다.

6. MySQL Workbench 연결 설정

설정직접 TCP/IP 연결SSH 터널 연결(권장)
Connection MethodStandard (TCP/IP)Standard TCP/IP over SSH
HostnameMariaDB 서버 IPSSH 서버를 통한 MariaDB 주소(보통 127.0.0.1)
Port33063306
Usernameworkbench_user터널용 DB 계정
SSH 설정해당 없음SSH Hostname, SSH Username, 인증키 또는 인증 정보

SSH 터널 방식은 DB 포트 3306을 외부에 공개하지 않고 SSH를 통해 접근할 수 있습니다. 이 방식에서는 bind-address = 127.0.0.1을 유지할 수 있으며, DB 계정은 실제 MariaDB가 인식하는 접속 호스트에 맞게 생성해야 합니다. Workbench의 Test Connection으로 확인하세요.

7. MySQL Workbench의 MariaDB 호환성 경고

MySQL Workbench는 MySQL 중심으로 개발되어 MariaDB 서버 연결 시 버전 또는 기능 호환성 경고가 나타날 수 있습니다. 경고가 있다고 반드시 접속에 실패하는 것은 아니지만, 무조건 무시해서도 안 됩니다. 단순 SQL 조회·편집은 가능하더라도 서버 관리, 모델링, 일부 메타데이터 기능은 차이가 있을 수 있습니다. 필요한 기능을 실제로 테스트하거나 MariaDB 호환 클라이언트를 사용하세요.

MySQL Workbench에서 MariaDB 서버 접속 시 표시되는 호환성 경고의 과거 화면

위 이미지는 과거 Workbench 경고 화면으로, 최신 버전의 실제 메시지와 다를 수 있습니다.

과거 MariaDB 계정 Host 설정 예시 화면. 현재는 root 원격 공개 대신 전용 계정 사용 권장
MySQL Workbench에서 MariaDB 연결이 완료된 과거 화면

8. 접속 오류별 점검 방법

오류 / 증상확인 사항
Can’t connect / Connection refusedMariaDB 서비스, bind-address, 3306 수신 상태, 방화벽 확인
Access denied for user계정의 User@Host, 암호, 권한, 인증 방식 확인
ERROR 1356 / mysql.user 뷰mysql.user 직접 UPDATE 금지. CREATE USER, ALTER USER, GRANT로 관리
SSL connection error서버 TLS 설정, 인증서 신뢰, Workbench SSL 옵션 확인
Workbench 호환성 경고단순 연결 여부와 필요한 기능을 별도로 테스트
sudo systemctl status mariadb
sudo journalctl -u mariadb -n 50 --no-pager
sudo ss -lntp | grep 3306
sudo mariadb -e "SHOW VARIABLES LIKE 'bind_address';"

9. 버전 및 보안 참고

MariaDB는 장기 지원(LTS)과 단기 릴리스가 구분됩니다. 운영 서버에서는 최신 번호만 보고 업그레이드하기보다 현재 배포판 지원 범위, 애플리케이션 호환성, 백업·복구 검증을 기준으로 버전을 선택하세요. MariaDB 10.5는 이미 커뮤니티 유지보수가 종료되었으므로 지원되는 릴리스로 이전을 계획하는 것이 좋습니다.

공식 참고 문서: MariaDB 원격 연결 가이드 · CREATE USER · GRANT · MariaDB 릴리스 지원 정책