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.