MySQL 패키지/소스 설치 실행방법 비교

minstone·2022년 5월 9일
0
post-thumbnail

1. RPM 및 소스 설치

RPM 설치는 미리 컴파일된 패키지를 사용하므로 설치 프로세스가 간소화됩니다. 반대로 소스 설치는 소스 코드에서 MySQL을 컴파일해야 하므로 사용자 정의 및 추가설정 등 패키지설치에 비해 번거로울 수 있습니다.



2. 유틸리티 경로

설치방법 별 mysql, mysqladmin, mysqldump 와 같은 유틸리티가 위치하는 경로입니다.

  • 패키지 설치: /usr/bin/mysql
  • 소스 설치: /usr/local/mysql/bin/mysql

사용자의 홈 디렉토리에 있는 .bashrc 또는 .bash_profile파일의 PATH 환경 변수에 MySQL 유틸리티 경로를 추가하면 어느 경로에서도 해당 유틸리티를 실행 가능합니다.

export PATH=$PATH:/usr/local/mysql/bin


3. mysql.server 파일 위치

  • 패키지로 설치 : /etc/init.d/mysql 또는 /etc/rc.d/init.d/mysql

    mysql8.0버전을 패키지 설치해 확인해 보았으나, mysql.server 파일은 찾을 수 없었다. 아마도 해당 배포판에서는 systemd을 사용기에 init 시스템이 대체되었을 것으로 추측하고 있다.

  • 소스 설치 : /usr/local/mysql/support-files/mysql.server
    필요한 위치로 복사 후 실행 및 수정 가능하다.



4. Systemctl에 MySQL 등록하기

4-1. MySQL 서비스 systemd 유닛 파일 생성

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql

# Have mysqld write its state to the systemd notify socket
Type=notify

# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0

# Start main service
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf $MYSQLD_OPTS 

# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql

# Sets open_files_limit
LimitNOFILE = 10000

Restart=on-failure

RestartPreventExitStatus=1

# Set environment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1

PrivateTmp=false

4-2. systemd mysql 서비스를 활성화하고 시작

# 편집한 설정파일 반영
systemctl daemon-reload
# 서비스 enable 처리
systemctl enable mysql.service
# mysqld 서비스 시작
systemctl start mysql.service

4-3. systemctl 명렁어

systemctl 명령어로 서비스를 시작, 중지, 재시작, 상태 확인 등을 할 수 있습니다.

systemctl start mysql.service
systemctl stop mysql.service
systemctl restart mysql.service
systemctl status mysql.service

systemd란? system daemon으로 유닛이라슨 서비스를 관리하며 시스템 부팅 중 또는 장애 발생 시 서비스를 시작, 중지, 모니터링하고 동작을 구성하기 위한 도구를 제공합니다.



5. Systemd 경로

  • /lib/systemd/system 경로는 패키지 설치한 서비스에 대한 기본 단위 파일이 저장.
  • /etc/systemd/system 경로는 사용자 지정 또는 추가 단위 파일이 저장하며, 같은 이름의 파일이 /lib/systemd/system/에 있을 경우 그 설정을 덮어씁니다.

일반적으로 사용자 정의 설정이나 소스로부터 설치한 서비스의 경우, systemd 유닛 파일을 /etc/systemd/system/ 디렉토리에 생성하는 것이 좋습니다. 이렇게 하면 설치된 패키지와 충돌을 방지하고 사용자 설정을 관리할 수 있습니다.



6. MySQL.server와 Systemctl로 실행했을 때의 차이?

  • systemctl

    MySQL 서비스를 systemctl로 실행하면 서비스의 시작, 중지, 재시작, 상태 확인 등을 쉽게 관리할 수 있으며,서비스가 부팅 시 자동으로 시작되게 설정하거나, 서비스가 실패할 경우 자동으로 재시작되게 설정하는 등의 추가 기능을 제공합니다.

  • mysql.server

    해당 스크립트로 사서버를 시작하거나 종료할 수 있지만, systemctl을 사용한 경우와 비교하여 관리 기능이 제한됩니다.

profile
🌚Stone Kid

0개의 댓글