Ubuntu: 머신이 시작될 때 SQL을 실행하는 스크립트를 어디에 추가합니까?

Ubuntu: 머신이 시작될 때 SQL을 실행하는 스크립트를 어디에 추가합니까?

Ubuntu가 부팅될 때마다 일부 SQL을 실행하는 스크립트를 실행해야 합니다. 그래서 MySQL이 시작된 후에 실행해야 합니다.

이런 스크립트는 어디에 넣어야 하나요?

답변1

파일은 에 배치되어야 /etc/init.d하고 링크는 에 배치되어야 합니다 /etc/rc2.d(런레벨 2에 있다고 가정합니다(참고자료 참조 who -r).

S99sql링크는 rc2.d의 모든 파일이 알파벳순으로 실행되는 형식이어야 합니다 .

요약하다,

투어 파일 만들기/etc/init.d/mysqlcmd.sh

그런 다음 디렉토리를 /etc/rc2.d ans로 변경하십시오.ln -s ../init.d/mysqlcmd.sh S99mysql

답변2

체계

사용 중인 Ubuntu 버전(14.04 이상)을 사용하는 경우 파일을 수정하고 systemd준비가 .service되면 실행할 다른 스크립트를 추가할 수 있습니다.MySQL

# vi /usr/lib/systemd/system/mysqld.service

다른 항목을 추가하세요.

ExecStartPost=/usr/libexec/mysqld-wait-ready $MAINPID

세미콜론과 스크립트 이름을 추가하면 다음과 같습니다.

ExecStartPost=/usr/libexec/mysqld-wait-ready $MAINPID ; <path to my script>

bash이러한 스크립트는 셸을 사용하여 실행되지 않으므로 리디렉션 등이 필요한 경우 스크립트 등을 래핑해야 합니다.

스크립트 mysqld-wait-ready는 말한 대로 정확하게 수행하고 mysqld연결을 수락할 준비가 될 때까지 기다립니다. 따라서 스크립트는 서버에서 SQL을 실행할 수 있어야 합니다.

갑자기 나타나다

Ubuntu 14.04 이전 버전의 경우 upstartconf 파일을 생성할 수 있습니다.

description     "My Post-MySQL Start Script"
author "Pavel Bernshtam"

start on started mysql

task
script
    # do my stuff here
end script

다음 위치에 파일 저장/etc/init/<my script name>.conf

스크립트에 대한 자세한 내용을 보려면 upstart다음을 방문하세요.여기

관련 정보