Manual:Shared database/cs

Tato stránka poskytuje stručný přehled používání sdílených databází v MediaWiki. Většina informací zde by měla fungovat s jednoduchou instalací MediaWiki (bez rozšíření). Jakékoli požadavky na rozšíření jsou uvedeny. Všimněte si, že toto je navrženo kolem databází MySQL. Podpora pro SQLite byla přidána do MediaWiki 1.17. Podpora pro PostgreSQL byla přidána do MediaWiki 1.19. Jiné databázové stroje nemusí podporovat sdílené databáze tímto způsobem.

Základy
Sdílené databáze jsou nakonfigurovány se 3 hlavními globálními ve vašem :



V závislosti na vašich potřebách a prostředí možná nebudete muset používat všechny tyto možnosti.



Nejjednodušší nastavení: Sdílená uživatelská tabulka
Sdílenou tabulku uživatelů lze použít pro více wikin, které mají sdílené registrace uživatelů, takže uživatelé se musí zaregistrovat pouze do jedné wiki.

Ve výchozím nastavení obsahuje $wgSharedTables tabulky user a user_properties. Přidání 'hráče' je plánováno.



Oprávnění k databázi
Uživatel MySQL sdílené wiki musí mít alespoň oprávnění SELECT a UPDATE pro hlavní tabulky uživatelů wiki. Pokud pro každou wiki používáte různé uživatele MySQL, budete muset uživateli sdílené wiki udělit další oprávnění, jak je uvedeno v nastavení dané wiki. Pro ty, kteří používají sdílený hosting, mějte na paměti, že to je možné u některých, ale ne u všech poskytovatelů. Udělení oprávnění lze provést pomocí příkazů MySQL podobných následujícím:

To vaší wiki umožní číst uživatele z hlavní tabulky a také aktualizovat tabulky, což se stane vždy, když se uživatel přihlásí.



Sdílení relací
Chcete-li sdílet přihlašovací relace mezi svými wikinami, nastavte tak, aby zahrnoval všechny subdomény pod vaší kořenovou doménou. Pokud máte například stránky en.example.comfr.example.compool.example.com, nastavte:

Aktualizace
Od MediaWiki 1.21, když aktualizujete MediaWiki z webového instalačního programu, musí být během aktualizace dočasně odstraněny $wgSharedTables z LocalSettings.php. Jinak se sdílených tabulek vůbec nedotkne (ani tabulek s $wgSharedPrefix, ani těch s $wgDBprefix), což může vést k neúspěšnému upgradu.

Při aktualizaci z příkazového řádku, spouštění skriptu, musíte pro aktualizaci sdílených tabulek použít parametr  pro skript.

V MediaWiki 1.24 se výchozí typ hesla pro MediaWiki změnil z MD5 na PBKDF2 a hodnoty hash hesel se automaticky aktualizují, když se uživatelé přihlásí. Chcete-li tomu zabránit, dokud nebudou aktualizovány všechny wikiny, nastavte až   na všech wikinách a odeberte to na všech wikinách, když byly aktualizovány, abyste zajistili použití silnějšího šifrování.



Sdílení více tabulek
Můžete sdílet i jiné tabulky než uživatelskou, ale buďte při tom opatrní. Pokud tabulka obsahuje data specifická pro jednu wiki, sdílení může způsobit problémy. Všimněte si, že každá ze zde uvedených podsekcí předpokládá, že sdílíte také tabulku uživatelů. Kdykoli přidáváte další tabulky, nezapomeňte buď připojit k poli nebo zahrnout uživatelskou tabulku do nové definice pole.



Tabulka ipblocks
Sdílením tabulky můžete mít "globální bloky", takže blok na jedné wiki zablokuje uživatele nebo IP na všech ostatních wikinách využívajících sdílenou databázi.

Upozornění
Při sdílení tabulky ipblocks mohou nastat drobné problémy:


 * Pole  je nastaveno jako "důvod" na Special:Block při blokování uživatele. Když zablokovaný uživatel uvidí zprávu "Jste zablokováni", tato je analyzována jako wikitext a odkazy jsou analyzovány na Special:BlockList, budete se muset při blokování uživatele ujistit, že zpráva dává smysl na všech wikinách.
 * Protokoly bloků nebudou sdíleny (nedoporučujeme sdílení tabulky ).



Tabulka user_groups
Sdílení tabulky vám umožní mít globální skupiny uživatelů.

Upozornění

 * Stejně jako u protokolu blokování není protokol uživatelských práv sdílen.
 * Všechny skupiny uživatelů budou globální. Můžete to trochu obejít přizpůsobením skupin uživatelů. Chcete-li například mít administrátory na jedné wiki oddělené od administrátorů na jiné, můžete udělat něco takového:
 * V konfiguraci pro wiki 1:


 * V konfiguraci pro wiki 2:


 * Abyste zabránili byrokratům na jedné wiki přidělovat si práva na jiných wikinách, která by neměli mít, můžete provést podobnou konfiguraci jako výše, ale odebrat právo "uživatelská práva", která jim umožňuje nastavit jakoukoli skupinu, a místo toho použít /.



Další tabulky
Tato část se zabývá dalšími tabulkami s méně běžnými důvody pro sdílení a také tím, které tabulky nesdílet.


 * Tabulka interwiki obsahuje převážně statická data. Může být užitečné sdílet, pokud máte mnoho vlastních interwiki.
 * Tabulka site_stats by mohla být sdílena, aby se agregovala data na všech vašich wikinách.
 * Ve výchozím nastavení je tabulka zahrnuta do seznamu sdílených tabulek. Pokud byly vaše wikiny spuštěny pomocí MediaWiki 1.15 nebo starší, měli byste si to pravděpodobně ponechat kvůli zpětné kompatibilitě, protože uživatelské preference budou automaticky automaticky migrovány z tabulky user na tabulku user_properties. Jinak to můžete odstranit z pole, abyste uživatelům umožnili mít na každé wiki různé preference (pokud si to přejete)

Většina ostatních tabulek by neměla být sdílena, protože obsahují data specifická pro wiki, obvykle spojení se stránkami prostřednictvím id stránky nebo kombinace jmenného prostoru a názvu. To zahrnuje (ale není omezeno na):


 * Kterákoli z tabulek vlevo (pagelinkstemplatelinks atd.)
 * Tabulka page
 * Tabulka revision
 * Tabulka image (chcete-li mít sdílené úložiště médií, viz )

Další podrobnosti najdete na stránce



Související odkazy

 * - A different method to have shared user tables. Used by Wikimedia, and probably the easiest option for merging already-established wikis.
 * - an extension that allows IP addresses to be blocked globally, without sharing other databases. The right to globally block users is separated from the normal 'block' right.
 * - An extension that enables global user groups and allows easy management of them via Special:GlobalUserrights.