Nastavuji mysql slave na systému Fedora 16 a server_id není správně nastaven. Můj /etc/my.cnf je:
[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
Nicméně po systemctl restart mysqld.service , show variables like "server_id" označuje server_id je , což způsobí selhání replikace.
/var/log/mysqld.log byl naposledy upraven, když jsem naposledy restartoval server, ale z té doby nejsou žádné záznamy v protokolu (restart jsem provedl dnes a poslední záznam je ze včerejška).
Proč ne server-id=16 práce? Je potřeba to nastavit v nějakém jiném souboru? Případně existuje způsob, jak upravit systemd unit file takový, že mysqld začíná --server-id= možnost příkazového řádku nebo získejte mysqld pro spuštění příkazu SQL pro nastavení server_id při spuštění?
Přijatá odpověď:
Použijte kontexty check selinux, mohou být chybné
Pro mysqld zprávy o spuštění, vypnutí, jiné než /var/log/mysqld.log , zkontrolujte také /var/log/messages .
Pokud zprávy (varování/chyba) zobrazují sealert návrh, zkontrolujte kontexty mysqld selinux, mohou být špatné nebo zastaralé. Aktualizace může problém vyřešit.
Chcete-li použít --server-id= ve spouštěcím skriptu mysqld zkontrolujte následující umístění
/etc/sysconfig/
Možná existuje mysqld soubor, u kterého můžete přizpůsobit možnosti spuštění.
/etc/rc.d/init.d/
mysqld spouštěcí skript se nachází zde. Možnost můžete pevně zakódovat ve skriptu. Změny však budete muset použít pokaždé, když budete vyšší známku.
PS:Možná budete chtít zvážit přechod OS slave boxu na debian/ubuntu, aby se znalosti systému vztahovaly na oba stroje. Navíc (IMHO) Fedora není dobrou volbou pro produkční/serverový box kvůli krátké životnosti distribuce (6měsíční skladovatelnost + 6měsíční podpora aktualizací). Pokud preferujete operační systém související s RedHat, použijte RedHat nebo CentOS.