1

Ubuntu サーバーで mysql を起動する前に、いくつかの設定を行う別のスクリプトを実行する必要があります。mysql は Upstart システムによって開始されます。Upstart のことは聞いたことがありませんでしたが、ドキュメントを読んで、これを実現する方法についていくつかのオプションがあると思いますが、経験豊富な Upstart ユーザーに確認してもらうか、そうでなければ私の結論を確認してもらいたいと思います。

以下の 4 つのオプションのうち、mysql.conf ジョブを変更する必要がないため、最後のオプションをお勧めします。

mysql.conf:
pre-start script
    mkdir -p /mnt/mysql
    [ -L /var/lib/mysql ] || ln -s /mnt/mysql /var/lib/mysql
    /usr/bin/mysql_install_db --user=mysql
chown mysql:mysql /var/lib/mysql/mysql/.
chown mysql:mysql /var/lib/mysql/mysql/*
end script

mysql.conf
pre-start exec /var/myscriptfile (where myscriptfile contains mkdir -p /mnt/mysql etc)

mysql.conf
start on started mysql-primer
(where mysql-primer is an Upstart job that does mkdir etc)

mything.conf
start on starting mysql
task
script
    mkdir -p /mnt/mysql
    [ -L /var/lib/mysql ] || ln -s /mnt/mysql /var/lib/mysql
    /usr/bin/mysql_install_db --user=mysql
chown mysql:mysql /var/lib/mysql/mysql/.
chown mysql:mysql /var/lib/mysql/mysql/*
end script

ありがとう、ポール

4

1 に答える 1

2

あなたの最後のアイデアはまさに正しいです:

mything.conf:

start on starting mysql
task
script
    mkdir -p /mnt/mysql
    [ -L /var/lib/mysql ] || ln -s /mnt/mysql /var/lib/mysql
    /usr/bin/mysql_install_db --user=mysql
    chown mysql:mysql /var/lib/mysql/mysql/.
    chown mysql:mysql /var/lib/mysql/mysql/*
end script

開始イベントは、そのタスクが完了するまで開始するすべてのタスクをブロックします。

于 2012-09-07T18:49:58.230 に答える