レプリケーションマスターとして機能するようにMySQLサーバーを構成する必要があります。
my.cnfを変更してバイナリログをアクティブにしましたが、今は構成をリロードするためにを使用してサービスをリロードする必要があります/etc/init.d/mysqld restart
。問題は、サーバーが毎秒複数のクエリを受信し、その間に到着する可能性のあるすべてのデータを失いたくないということです。
サービスを再起動せずに構成ファイルmy.cnfをリロードする方法はありますか?
レプリケーションマスターとして機能するようにMySQLサーバーを構成する必要があります。
my.cnfを変更してバイナリログをアクティブにしましたが、今は構成をリロードするためにを使用してサービスをリロードする必要があります/etc/init.d/mysqld restart
。問題は、サーバーが毎秒複数のクエリを受信し、その間に到着する可能性のあるすべてのデータを失いたくないということです。
サービスを再起動せずに構成ファイルmy.cnfをリロードする方法はありますか?
回答:
MySQL固有:
my.cnfのオプションはシステム変数です。これらの変数は動的(実行時に変更可能)または動的ではありません。動的なものは、実行時にSET変数構文を使用して変更できます。変数はで確認できますSHOW VARIABLES;
。しかし、マニュアルのこのリンクによると、バイナリログオプションは動的ではありません。再起動する必要があるようです。ただし、mysqlを自分よりも少し知っている人がこれを確認するのを待つことをお勧めします。
一般的なデーモン:
Linuxでは、/ etc / init.d /はデーモン(サービス)を開始および停止するスクリプトを保持します。これらはスクリプトであるため、テキストエディターで表示できます。これらのスクリプトの多くは、リロード引数を取ります。mysqlスクリプトを見ると、引数としてリロードするにはmysqladminコマンドを使用します。したがって、リロード中のmysqladminのマニュアルには次のように記載されています。
リロード
Reload the grant tables.
したがって、一般的には、これは構成の変更ではなく、権限の変更のためです(おそらく、同等のフラッシュ権限コマンドですか?)。
私はこれに対する解決策を探していましたが、私が見つけた限られた助けに満足していませんでした。あるチャップスがキル-HUPを提供しました..私にはうまくいきませんでした..
私がやったことは、Apacheインスタンスを一時停止し、後でそれらを継続することでした..サーバーで1秒間に平均25のアクティブなリクエストを持っているチャームのように機能しました
sudo(明らかに)pkill -STOP httpd && /etc/init.d/mysqld restart && pkill -CONT httpd
もちろん、Apacheプロセス名やmysqlの再起動スクリプトは私のものとは異なる場合がありますが、正しい考えを得ることができます!
/etc/init.d/restart
ホスト全体を再起動します。あなたはおそらく考えています/etc/init.d/mysqld restart