MySQL 서버를 시작하는 방법을 논의하기 전에 어떤 사용자가 MySQL 서버를 실행해야 하는지 생각해 보겠습니다. 서버는 수동 또는 자동으로 시작할 수 있습니다. 수동으로 시작하면 Unix(Linux)에 로그인한 사용자로 서버가 시작됩니다. 즉, paul로 Unix에 로그인하고 서버를 시작하면 paul로 루트로 전환하면 서버가 실행됩니다. su 명령을 실행한 다음 루트로 실행되도록 서버를 시작합니다. 그러나 대부분의 경우 서버를 수동으로 시작하고 싶지 않을 것이며, Unix에서 수행되는 표준 부팅 프로세스의 일부로 시스템 부팅 시 MySQL 서버가 자동으로 시작되도록 준비할 가능성이 높습니다. 시스템의 Unix 사용자 루트 및 프로세스 내에서 실행되는 모든 프로세스는 루트 권한으로 실행됩니다.
MySQL 서버 시작 프로세스 중에는 두 가지 목표를 염두에 두어야 합니다.
루트가 아닌 사용자로 서버를 실행하려고 합니다. 일반적으로 MySQL에서는 루트 권한이 꼭 필요하지 않은 한 실행 중인 프로세스의 기능을 제한하려고 합니다.
한 사용자를 사용하고 다른 사용자로 서버를 실행하는 것은 매우 불편합니다. 이로 인해 파일과 디렉터리의 속성이 달라집니다. 데이터 디렉터리가 생성되고 실행 중인 사용자에 따라 서버가 데이터베이스나 테이블에 액세스하지 못하게 될 수 있습니다. 동일한 사용자로 서버를 실행하면 이 문제를 방지하는 데 도움이 됩니다.
권한이 없는 일반 사용자로 서버를 실행하려면 다음 단계를 따르세요.
서버를 실행할 사용자를 선택하면 모든 사용자로 Mysqld를 실행할 수 있습니다. 그러나 개념적으로 더 명확한 것은 MySQL 작업을 위해 별도의 사용자를 생성하는 것입니다. MySQL 전용 사용자 그룹을 선택할 수도 있습니다. 이 기사 에서는 사용자 이름과 사용자 그룹 이름으로 각각 mysql adm과 mysqlgrp를 사용합니다.
자신의 계정으로 MySQL을 설치하고 시스템에 대한 특별한 관리 권한이 없는 경우에는 자신의 사용자 ID로 서버를 실행할 수 있습니다. 이 경우 mysqladm 및 mysqlgrp를 자신의 로그인 이름과 사용자 그룹으로 바꾸십시오.
rpm 파일을 사용하여 RedHat Linux에 MySQL을 설치하는 경우 설치 시 자동으로 mysql이라는 계정이 생성되고 이 계정을 사용하여 mysqladm을 대체합니다.
필요한 경우 시스템의 일반적인 사용자 생성 프로세스를 사용하여 서버 계정을 생성하려면 루트가 필요합니다.
서버가 실행 중이면 중지하세요.
mysqladm 사용자가 소유하도록 데이터 디렉토리와 모든 하위 디렉토리 및 파일의 소유권을 수정합니다. 예를 들어 데이터 디렉터리가 /usr/local/var인 경우 다음과 같이 mysqladm의 소유자를 설정할 수 있습니다(이 명령은 루트로 실행해야 함).
#cd /usr/local/var
#chown -R mysqladm.mysqlgrp
mysqladm 사용자만 액세스할 수 있도록 데이터 디렉터리와 모든 하위 디렉터리 및 파일의 권한을 수정합니다. 데이터 디렉토리가 /usr/local/var이면 mysqladm이 소유한 모든 것을 설정할 수 있습니다:
# cd /usr/local/var
# chmod -R go- rwx
데이터 디렉토리와 그 내용의 소유자와 모드를 설정할 때 심볼릭 링크에 주의하세요. 당신은 그들을 따르고 그들이 가리키는 파일이나 디렉터리의 소유권과 모드를 변경해야 합니다. 연결 파일이 있는 디렉터리가 자신이 소유하지 않은 곳에 있고 루트여야 할 경우 이는 다소 문제가 될 수 있습니다.
위의 과정을 완료한 후에는 항상 mysqladm 또는 root로 로그인한 상태에서 서버를 시작해야 합니다. 후자의 경우 --user=mysqladm 옵션을 지정하여 서버를 활성화해야 합니다. 사용자 ID를 mysqladm으로 전환합니다(시스템 시작 프로세스에도 적용됨).
--user 옵션은 MySQL 3.22에서 도입되었습니다. 이전 버전을 사용하는 경우 su 명령을 사용하여 루트로 실행할 때 특정 사용자로 서버를 실행하도록 시스템에 지시할 수 있습니다.
서버 시작 방법
서버를 실행할 계정을 확인한 후 서버 시작 방법을 선택하면 됩니다. 명령줄에서 수동으로 실행하거나 시스템 부팅 중에 자동으로 실행할 수 있습니다. 서버를 시작하는 세 가지 주요 방법은 다음과 같습니다.
mysqld를 직접 호출합니다.
이는 가장 일반적으로 사용되지 않는 방법일 수 있으며, 더 이상 사용하지 않는 것이 좋으므로 이 글에서는 자세히 소개하지 않겠습니다.
safe_mysqld 스크립트를 호출합니다.
safe_mysqld는 서버 프로그램과 데이터 디렉터리의 위치를 확인하려고 시도합니다. 그런 다음 이러한 값을 반영하는 옵션을 사용하여 서버가 호출됩니다. safe_mysqld는 서버의 표준 오류 장치를 데이터 디렉터리의 오류 파일로 재배치하여 이에 대한 기록을 남깁니다. 서버를 시작한 후 safe_mysqld도 서버를 모니터링하고 서버가 종료되면 다시 시작합니다. safe_mysqld는 일반적으로 BSD 스타일 Unix 시스템에서 사용됩니다.
sqfe_mysqld를 루트로 시작하거나 시스템 부팅 중에 오류 로그를 소유하게 되면 나중에 권한이 없는 사용자로 safe_mysqld를 호출하려고 할 때 "권한 거부" 오류가 발생할 수 있습니다. 삭제. 오류 로그를 확인하고 다시 시도하세요.
mysql.server 스크립트를 호출합니다.
이 스크립트는 safe_mysqld.mysql.server를 통해 서버를 시작합니다. 이 스크립트는 시스템에 들어가거나 종료 a 주어진 레벨을 실행할 때 사용되는 스크립트 디렉토리입니다. start 또는 stop 매개변수 지점을 사용하여 서버를 시작할지 또는 중지할지 여부를 나타낼 수 있습니다.
safe_mysqld 스크립트는 MySQL 설치 디렉터리의 bin 디렉터리에 설치되거나 MySQL 소스 코드 배포판의 scripts 디렉터리에서 찾을 수 있습니다. mysql.server 스크립트는 MySQL 설치 디렉터리 아래의 share/mysqld 디렉터리에 설치되거나 MySQL 소스 코드 배포판의 support_
files 디렉터리에서 찾을 수 있습니다. 사용하려면 적절한 디렉터리에 복사해야 합니다.
BSD 스타일 시스템(FreeBSD, OpenBSD 등)의 경우 일반적으로 부팅 중 서비스를 초기화하기 위해 /etc 디렉터리에 여러 파일이 있으며 이러한 파일은 일반적으로 "rc"로 시작하는 이름을 갖습니다. 가능 "rc.local"(또는 이와 유사한 것)이라는 파일로 구성되며, 특히 로컬에 설치된 서비스를 시작하는 데 사용됩니다. 이러한 시스템에서는 rc.local 파일에 다음과 유사한 줄을 추가하여 서버를 시작할 수 있습니다(safe_mysqld 디렉터리가 시스템에서 다른 경우 변경하면 됩니다).
if [ -x /usr/local/bin/safe_mysqld ]; then /usr/local/bin/safe_mysqld &
fi
System V 스타일 시스템의 경우 mysql .server가 배치되도록 전달할 수 있습니다. /etc 아래의 적절한 시작 디렉토리에 설치합니다. Linux를 실행하고 RPM 파일에서 MySQL을 설치하는 경우 이 작업은 이미 수행되어 있습니다. 그렇지 않으면 기본 시작 디렉터리에 스크립트를 설치하고 해당 실행 수준 디렉터리에 연결을 배치합니다. 루트로만 스크립트를 시작할 수 있도록 설정할 수도 있습니다.
시작 파일의 디렉터리 레이아웃은 시스템마다 다르므로 시스템이 시작 파일을 어떻게 구성하는지 확인해야 합니다. 예를 들어 Linux PPC에서 디렉토리는 /etc/rc.d 및 /etc/rc.d/rc3.d이므로 다음과 같이 스크립트를 설치할 수 있습니다.
#cp mysql.server /etc /rc.d /init.d
#cd /etc/init.d
#chmod 500 mysql.server
#cd /etc/rc.d/rc3.d
#ln -s ../init .d/mysql.server S99mysql
솔라리스에서 기본 스크립트 디렉터리는 /etc/init.d이고 실행 수준 디렉터리는 /etc/rd2.d이므로 명령은 다음과 같습니다.
#cp mysql.server /etc/rc.d/init.d
#cd /etc/init.d
#chmod 500 mysql.server
#cd /etc/rc2.d
# ln -s ../init.d/mysql.server S99mysql
시스템이 시작되면 S99mysql 스크립트가 시작 매개변수와 함께 자동으로 호출됩니다. chkconfig 명령(Linux에서 사용 가능)이 있는 경우 위와 같이 위 명령을 수동으로 실행하는 대신 이를 사용하여 mysql.server 스크립트를 설치할 수 있습니다.
시작 옵션 지정
서버 시작 시 추가 시작 옵션을 지정하려면 두 가지 방법이 있습니다. 사용하는 시작 스크립트(safe_mysqld 또는 mysql.server)를 수정하고 서버를 호출하는 줄에서 직접 옵션을 지정하거나 옵션 파일에서 옵션을 지정할 수 있습니다. 가능하면 일반적으로 /etc/my.cnf(Unix) 또는 c:my.cnf(Windows)에 있는 전역 옵션 파일에서 옵션을 지정하는 것이 좋습니다.
특정 유형의 정보는 서버 옵션에서 지정할 수 없습니다. 이를 위해서는 safe_mysqld를 수정해야 할 수도 있습니다. 예를 들어 서버가 현지 시간대를 올바르게 선택할 수 없고 GMT의 시간 값을 반환하는 경우 TZ 환경 변수 를 설정하여 표시할 수 있습니다. safe_mysqld 또는 mysql.server로 서버를 시작하는 경우 safe_mysqld에 시간대 설정을 추가할 수 있습니다. 서버를 시작하는 줄을 찾아 줄 앞에 다음 명령을 추가합니다.
TZ=US/Central
import TZ
위 명령의 구문은 Solaris이며 구문은 다음과 같습니다. 다른 시스템에서는 다를 수 있으므로 관련 설명서를 참조하십시오. 시작 스크립트를 수정하는 경우 다음에 MySQL을 설치할 때(예: 새 버전으로 업그레이드) 시작 스크립트를 다른 곳에 먼저 복사하지 않으면 변경 사항이 손실된다는 점을 명심하십시오. 새 버전을 설치한 후 이전 스크립트와 새 스크립트를 비교하여 다시 빌드해야 하는 변경 사항을 확인하세요.
시작 시 테이블 확인
시스템 부팅 시 서버가 시작되도록 준비하는 것 외에도 myisamchk 및 isamchk 스크립트를 설치하여 서버가 시작되기 전에 테이블을 확인할 수 있습니다. 충돌 후 다시 시작하는 중일 수 있습니다. 시작하기 전에 테이블이 손상되었을 수 있으므로 문제를 찾는 것이 좋습니다.
위 내용은 MySQL 서비스 중 하나를 시작하고 중지하는 방법을 가르쳐주세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!