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 이전 버전의 경우 upstart
conf 파일을 생성할 수 있습니다.
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
다음을 방문하세요.여기