MySQL에는 엔터프라이즈 버전과 커뮤니티 버전이 있다.
MySQL 5.5 부터는 두 버전의 소스 코드가 달라진 것으로 추정된다.
리눅스에서는 설정 파일의 이름은 my.cnf, 윈도우에서는 my.ini이다.
MySQL 서버는 동작하면서 이러한 설정 파일의 내용을 읽고, 이러한 값을 별도로 저장해두는데 이를 Variable이라고 표현한다.
my.cnf 파일 안에는 [client], [mysql], [mysqldump], [mysqld], [mysqld_safe]과 같이 각 프로그램 이름 별로 설정을 기재하는데 이 각각의 설정 묶음을 설정 그룹이라고 한다.
*mysqld_safe은 버그나 실수로 mysqld(MySQL 서버 데몬 프로세스)가 비정상적으로 종료되는 경우 다시 실행하는 Watcher 프로세스의 역할을 한다.
Variable은 MySQL 서버 인스턴스 전체에 적용되는 Global Variables와 특정 클라이언트의 접속 세션에만 적용되는 Session Variables로 나뉜다. 또는 서버 동작 중에 그 값을 변경할 수 있는지 여부에 따라 동적 변수와 정적 변수로 나눌 수도 있다.
설정 파일에 명시되는 설정들은 보통 '변수 이름=값'의 포맷으로 지정되지만 가끔 'skip-name-resolve'나 'skip_builtin_innodb' 설정처럼 그 이름 자체가 값의 의미도 함께 갖고 있는 경우도 많다.
MySQL을 처음 설치하고 나면 다음과 같은 세 개의 기본 데이터베이스가 있다.
(1) information_schema: MySQL 서버에 존재하는 오브젝트(테이블, 컬럼, Stored Procedure, function 등)의 정보를 담고 있는 메타 정보 테이블이 저장된 데이터베이스
(2) mysql: information_schema와 다소 중복된 정보를 갖고 있기도 하고, 보안과 관련된 내용이 주로 저장되어 있는 데이터베이스(접속 가능한 호스트, 계정별 권한 등)
(3) test: 테스트 용도의 데이터베이스