Fedora 16システムでmysqlスレーブをセットアップしており、server_id 正しく設定されていません。私の/etc/my.cnf は:
[mysqld]
server-id=16
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
read-only = 1
symbolic-links=0
max_allowed_packet = 100000000
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
ただし、systemctl restart mysqld.serviceの後に 、show variables like "server_id" server_idを示します です 、これによりレプリケーションが失敗します。
/var/log/mysqld.log サーバーを最後に再起動したときに最後に変更されましたが、それ以降のログエントリはありません(今日再起動しました。最後のエントリは昨日のものです)。
server-id=16を使用しないのはなぜですか 仕事?他のファイルに設定する必要がありますか?または、systemdを編集する方法はありますか mysqldなどのユニットファイル --server-id=で始まります コマンドラインオプション、またはmysqldを取得します SQLステートメントを実行してserver_idを設定します 起動時に?
承認された回答:
checkselinuxコンテキストを使用してください。間違っている可能性があります
mysqldの場合 /var/log/mysqld.log以外の起動、シャットダウンメッセージ 、/var/log/messagesも確認してください 。
メッセージ(警告/エラー)にsealertが表示されている場合 提案、mysqld selinuxコンテキストを確認してください。間違っているか、古くなっている可能性があります。それに応じて更新すると、問題が修正される場合があります。
--server-id=を使用するには mysqld起動スクリプトで、次の場所を確認してください
/etc/sysconfig/
おそらくmysqld 起動オプションをカスタマイズできるファイル。
/etc/rc.d/init.d/
mysqld 起動スクリプトはここにあります。スクリプトでオプションをハードコーディングできます。ただし、アップグレードするたびに変更を適用する必要があります。
PS:システムの知識が両方のマシンに適用されるように、スレーブボックスOSをdebian/ubuntuに切り替えることを検討することをお勧めします。さらに、(IMHO)Fedoraは、ディストリビューションの寿命が短いため(6か月の保管寿命+ 6か月の更新サポート)、プロダクション/サーバーボックスには適していません。 RedHat関連のOSが望ましい場合は、RedHatまたはCentOSを使用してください。