콘텐츠로 이동

설치

  1. 여기에서 Windows용 설치 파일을 받는다. 이름에 Web이 붙은 것은 온라인 설치 파일이라 오프라인 설치 파일보다 조금 작다.

    서버용으로 설치한다면 첫 화면에서 server only만 고르면 된다. 함께 딸려 오는 클라이언트는 별로 쓸 만하지 않은데, 가장 큰 단점은 중국어 사용자에게 친절하지 않다는 것이다.

  2. 그대로 다음으로 넘어가면 설치 경로와 데이터 저장 경로를 정하는 화면이 나온다. 필요에 따라 바꾸자.

  3. 다음을 누르고 Execute를 누른 뒤 계속 다음으로 넘어가면 아래 화면이 나온다. Config Type은 Server Computer로 고르고, 나머지 설정은 필요에 맞게 바꾼 다음 Next를 누른다.

  4. 여기는 기본값 그대로 두고 Next를 누른다.

  5. 다음은 root 비밀번호 설정이다. 절대 잊어버리지 말자. 아래쪽에서 다른 사용자도 만들 수 있지만, 데이터베이스별 사용자는 관리 도구로 만드는 것을 권장한다.

  6. 이 화면은 딱히 설정할 것이 없으니 바로 Next를 누른다.

  7. Execute를 누르고, 한 번 더 Execute를 누르면 설치가 끝난다.

  1. 여기에서 yum 또는 apt 저장소 패키지를 받아 서버의 적당한 폴더에 둔다.

    저장소를 설치하는 명령어:

    Terminal window
    # Debian 계열
    sudo dpkg -i <방금 받은 파일의 절대 경로>
    # Red Hat 계열
    sudo yum localinstall <방금 받은 파일의 절대 경로>
    # 또는 dnf 사용
    sudo dnf localinstall <방금 받은 파일의 절대 경로>

    Debian 계열은 추가로 sudo apt-get update를 실행한다.

  2. 버전 선택:

    Terminal window
    # Debian 계열
    sudo dpkg-reconfigure mysql-apt-config
    # 선택 창이 뜨면 원하는 버전을 고르고 Ok를 누른다.
    sudo apt-get update
    # Red Hat 계열
    yum repolist all | grep mysql
    # 또는 dnf 사용
    dnf repolist all | grep mysql
    # 이 명령어를 실행하면 하위 저장소 목록이 길게 출력된다.
    # 9.7 LTS 버전을 권장한다.
    # 아래 명령어로 하위 저장소를 끄거나 켤 수 있다.
    sudo yum-config-manager --disable <하위 저장소>
    sudo yum-config-manager --enable <하위 저장소>
    # 또는 dnf 사용
    sudo dnf config-manager --disable <하위 저장소>
    sudo dnf config-manager --enable <하위 저장소>

    다음 명령어를 실행해 출력을 보고 올바른 하위 저장소가 켜져 있는지 확인한다(dnf를 쓰는 시스템에서는 yum을 dnf로 바꾼다).

    Terminal window
    yum repolist enabled | grep mysql
  3. MySQL 설치

    Terminal window
    # Debian 계열
    sudo apt-get install mysql-server
    # MySQL 서버 패키지와 클라이언트, 데이터베이스 공통 파일 패키지가 설치된다.
    # 설치 도중 MySQL root 사용자 비밀번호를 물어본다.
    # Red Hat 계열
    sudo yum install mysql-community-server
    # 또는
    sudo dnf install mysql-community-server
    # MySQL 서버 패키지(mysql-community-server)와 함께 서버 실행에 필요한 구성 요소 패키지가 설치된다. 클라이언트 패키지(mysql-community-client), 클라이언트와 서버 공통 오류 메시지 및 문자셋(mysql-community-common), 공유 클라이언트 라이브러리(mysql-community-libs)가 포함된다.
  4. MySQL 서버 시작과 중지

    Terminal window
    # Debian 계열
    systemctl start mysql #시작
    systemctl stop mysql #중지
    systemctl status mysql #상태 확인
    systemctl restart mysql #재시작
    # Red Hat 계열
    systemctl start mysqld #시작
    systemctl stop mysqld #중지
    systemctl status mysqld #상태 확인
    systemctl restart mysqld #재시작

    MySQL 서버를 처음 시작할 때 데이터 디렉터리가 비어 있으면 다음 일이 일어난다.

    (Debian 계열 사용자는 슈퍼유저 비밀번호를 확인하고 재설정하는 단계를 건너뛰어도 된다.)

    • 서버가 초기화된다.
    • 데이터 디렉터리에 SSL 인증서와 키 파일이 생성된다.
    • validate_password가 설치되고 활성화된다.
    • 슈퍼유저 계정 'root'@'localhost가 생성된다. 슈퍼유저 비밀번호가 설정되어 오류 로그 파일에 저장되며, 다음 명령어로 확인할 수 있다.
    Terminal window
    sudo grep 'temporary password' /var/log/mysqld.log
  5. 생성된 임시 비밀번호로 로그인해서 슈퍼유저 계정의 비밀번호를 되도록 빨리 바꾼다.

    Terminal window
    $> mysql -uroot -p
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '<새 비밀번호>';

Docker로 배포한다면 Linux에서 하는 것을 권장한다(Windows의 Docker Desktop은 호환성과 성능이 다소 떨어진다). 다만 전반적으로는 앞에서 설명한 네이티브 설치를 더 권장한다. 초보자에게는 Docker 환경에서 문제를 추적하는 것이 더 번거롭다.

이미지를 받는 명령어:

Terminal window
docker pull mysql:<설치할 버전>

인스턴스를 시작하는 명령어:

Terminal window
docker run --name=<컨테이너 이름> \
-e MYSQL_ROOT_PASSWORD=<root 사용자 비밀번호> \
--restart on-failure \
-p 3306:3306 \
-d \
-v <데이터를 저장할 호스트 경로>:/var/lib/mysql \
-v <설정 디렉터리의 호스트 경로>:/etc/mysql/conf.d \
-v <로그를 저장할 호스트 경로>:/var/log/mysql \
mysql:<버전>