Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

mysqld란? MySQL 서버의 개념, 실행 방법과 주요 변수 정리

MySQL 설치 환경의 핵심이라 할 수 있는 mysqld, 즉 MySQL 서버에 대해 자세히 알아보겠습니다.

mysqld(MySQL 서버)란?

mysqld는 흔히 MySQL Server라고도 불리며, MySQL 설치 환경에서 대부분의 실질적인 작업을 수행하는 단일 멀티스레드(multithreaded) 프로그램입니다. 별도의 추가 프로세스를 생성하지 않고 하나의 프로그램 내에서 모든 작업을 처리한다는 점이 특징입니다.

MySQL 서버는 데이터베이스와 테이블이 저장되어 있는 MySQL 데이터 디렉터리(data directory)에 대한 접근을 관리합니다. 또한 이 데이터 디렉터리는 로그 파일(log files)이나 상태 파일(status files)과 같은 기타 정보가 기본적으로 저장되는 위치이기도 합니다.

디버깅용 서버: mysqld-debug

참고: 일부 설치 패키지에는 mysqld-debug라는 이름의 디버깅 전용 서버가 함께 포함되어 있을 수 있습니다. 이 버전은 일반적인 mysqld 대신 호출할 수 있으며, 다음과 같은 기능을 제공합니다.

  • 디버깅(debugging) 지원
  • 메모리 할당 검사(memory allocation checking)
  • 추적 파일(trace file) 지원

MySQL 서버 시작하기

MySQL 서버가 시작되면 클라이언트 프로그램으로부터 들어오는 네트워크 연결을 수신(listen)하며, 이러한 클라이언트들을 대신해 데이터베이스에 대한 접근을 관리하게 됩니다.

서버 시작 시 지정된 옵션들을 확인하려면 아래 명령어를 실행하면 됩니다.

shell> mysqld --verbose --help

시스템 변수(System Variables)

MySQL 서버는 실행 중인 동안 서버의 동작에 영향을 미치는 수많은 시스템 변수(system variables)를 가지고 있습니다. 이러한 시스템 변수는 서버 시작 시점에 설정할 수 있으며, 상당수는 런타임 중에도 값을 변경할 수 있어 서버를 재시작하지 않고도 동적 재구성(dynamic reconfiguration)이 가능합니다.

현재 설정된 시스템 변수 값은 다음 SQL 문으로 확인할 수 있습니다.

mysql> SHOW VARIABLES;

상태 변수(Status Variables)

MySQL 서버는 자신의 운영 상태에 관한 정보를 제공하는 상태 변수(status variables)들도 갖추고 있습니다. 이 변수들의 상태를 모니터링하면 스레드 수, 연결 수, 쿼리 처리량 등 런타임 성능 특성(runtime performance characteristics)을 파악할 수 있어, 서버 튜닝과 문제 진단에 유용하게 활용됩니다.

mysql> SHOW STATUS;