RPM 설치는 미리 컴파일된 패키지를 사용하므로 설치 프로세스가 간소화됩니다. 반대로 소스 설치는 소스 코드에서 MySQL을 컴파일해야 하므로 사용자 정의 및 추가설정 등 패키지설치에 비해 번거로울 수 있습니다.
설치방법 별 mysql
, mysqladmin
, mysqldump
와 같은 유틸리티가 위치하는 경로입니다.
사용자의 홈 디렉토리에 있는 .bashrc 또는 .bash_profile파일의 PATH 환경 변수에 MySQL 유틸리티 경로를 추가하면 어느 경로에서도 해당 유틸리티를 실행 가능합니다.
export PATH=$PATH:/usr/local/mysql/bin
패키지로 설치 : /etc/init.d/mysql 또는 /etc/rc.d/init.d/mysql
mysql8.0버전을 패키지 설치해 확인해 보았으나, mysql.server 파일은 찾을 수 없었다. 아마도 해당 배포판에서는 systemd을 사용기에 init 시스템이 대체되었을 것으로 추측하고 있다.
소스 설치 : /usr/local/mysql/support-files/mysql.server
필요한 위치로 복사 후 실행 및 수정 가능하다.
[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
# 편집한 설정파일 반영
systemctl daemon-reload
# 서비스 enable 처리
systemctl enable mysql.service
# mysqld 서비스 시작
systemctl start mysql.service
systemctl
명령어로 서비스를 시작, 중지, 재시작, 상태 확인 등을 할 수 있습니다.
systemctl start mysql.service
systemctl stop mysql.service
systemctl restart mysql.service
systemctl status mysql.service
systemd란? system daemon으로 유닛이라슨 서비스를 관리하며 시스템 부팅 중 또는 장애 발생 시 서비스를 시작, 중지, 모니터링하고 동작을 구성하기 위한 도구를 제공합니다.
일반적으로 사용자 정의 설정이나 소스로부터 설치한 서비스의 경우, systemd 유닛 파일을 /etc/systemd/system/ 디렉토리에 생성하는 것이 좋습니다. 이렇게 하면 설치된 패키지와 충돌을 방지하고 사용자 설정을 관리할 수 있습니다.
MySQL 서비스를 systemctl
로 실행하면 서비스의 시작, 중지, 재시작, 상태 확인 등을 쉽게 관리할 수 있으며,서비스가 부팅 시 자동으로 시작되게 설정하거나, 서비스가 실패할 경우 자동으로 재시작되게 설정하는 등의 추가 기능을 제공합니다.
해당 스크립트로 사서버를 시작하거나 종료할 수 있지만, systemctl
을 사용한 경우와 비교하여 관리 기능이 제한됩니다.