PEX via MySQL - Migrace (2.díl)

Message
Autor
Qentus
Příspěvky: 91
Registrován: 08 črc 2012, 16:00
Reputation: 0

PEX via MySQL - Migrace (2.díl)

#1 Příspěvekod Qentus » 09 črc 2012, 20:04

Miniseriál o PEX a MySQL:
- PEX via MySQL - Základy (1.díl)
- PEX via MySQL - Migrace (2.díl)



Migrace
V tomto díle se zaměřím na převod soubor -> Databáze.

Předpoklady:
- nainstalovaný PEX a pravomoce v souboru
- přístup do databáze

Doporučuji provádět změny se zamknutým serverem (whitelist), kdyby nahodou něco nešlo podle plánu.
Udělejte si zálohu celé složky PermissionsEx v adresáři s pluginy!

Takže server je připravený na převod, co dále?
1.krok
- do konzole napíšeme pex dump sql "permissions.sql" (nebo ve hře /pex dump sql "permissions.sql")
- pokud to nevypíše žádnou chybu, tak máme ve složce PermissionsEx připravený soubor permissions.sql který později využijeme

2.krok
- potřebujeme PEX nastavit tak, aby pracoval s Databází
- to provedeme celkem jednoduše - stačí pozměnit soubor config.yml v adresáři PEX
- toto je můj config - vysvětlíme si co kde změnit
Spoiler: zobrazit

Kód: Vybrat vše

permissions:
  basedir: plugins/PermissionsEx
  backend: sql
  backends:
    sql:
      driver: mysql
      uri: mysql://127.0.0.1:3306/minecraft
      user: minecraft
      password: *******
  superperms:
    disable-unmatched: false
    enable: true
    matched-permissions: true
    debug: false
    raw-permissions: true
    strict-mode: false
    parent-nodes: true
  createUserRecords: false
  allowOps: true
  debug: false

- na řádku "uri" upravíme adresu tak, aby odkazovala na naši databázi, za lomítko napíšeme název databáze (v mém případě "minecraft")
- za "user: " napíšeme jméno uživatele databáze
- za "password: " napíšeme heslo uživatele k databázi
- soubor uložíme, dáme restart/reload serveru a koukneme jestli se nám v databázi vytvořily tabulky permissions, permissions_entity a permissions_inheritance

3.krok
- před dalším postupem je potřeba vyprázdnit všechny tabulky, které se vytvořily, jinak vám to bude házet chybu
(u tabulek začínajících na permissions klikneme na "Vyprázdnit")
- nyní máme vše připraveno a můžeme přejít k převodu dat ze souboru do databáze
- otevřeme soubor permissions.sql v nějakém textovém editoru
- měl by obsahovat něco jako

Kód: Vybrat vše

INSERT INTO `permissions_inheritance` ( `child`, `parent`, `type` ) VALUES ( 'AnotherPlayer', 'default',  1);

- toho se vůbec nelekejte
- přes web se dostaneme do databáze, ve které máme připravené tabulky
- v menu nahoře najdeme kouzelné tlačítko "SQL"
- otevře se nám tato stránka
Spoiler: zobrazit
Obrázek

- v souboru permissions.sql označíme celý obsah, zkopírujeme a vložíme do textového pole na stránce
- klikneme na tlačítko "Proveď" a pokud to nenapíše žádnou chybu, tak restartujeme server a máme hotovo

Přečtěte si prosím 1. díl než se budete na něco ptát.
Je velká šance, že jsem něco zapomněl/přehlídl, takže mě můžete opravit

Možné problémy
Spoiler: zobrazit
MySQL hlásí něco o duplikaci
- asi jste tlačítko "proveď" stiskli 2x
- vyprázdněte tabulky od PEX a SQL script vložte znova

Nefunguje mi automatické VIP
- upravte php soubor do této podoby

Kód: Vybrat vše

// SMS PLATBA 50 CZK / 2 EUR
  case 23:
    $commands[] = "pex user ".$player." group add jmeno_skupiny \"\" \"pocet_sekund\"";
    $commands[] = "broadcast Hrac ".$player." si aktivoval VIP!";

- VIP se dá pro všechny světy
- když má být VIP jen pro určitý svět, tak to bude vypadat takto

Kód: Vybrat vše

// SMS PLATBA 50 CZK / 2 EUR
  case 23:
    $commands[] = "pex user ".$player." group add jmeno_skupiny \"jmeno_sveta\" \"pocet_sekund\"";
    $commands[] = "broadcast Hrac ".$player." si aktivoval VIP!";


Za/před jménem mám napsáno "Null"
- chyba je způsobena převodem do Databáze
- koukněte do tabulky permissions_entity a vše, kde je "Null", smažte (jen daná políčka přepište, nemažte celý záznam


PS.: Každý bod karmy potěší
Naposledy upravil(a) Qentus dne 22 črc 2012, 13:18, celkem upraveno 4 x.

Uživatelský avatar
zdenda204
Příspěvky: 3617
Věk: 36
Registrován: 23 kvě 2012, 21:38
Reputation: 0

Re: PEX via MySQL - Migrace (2.díl)

#2 Příspěvekod zdenda204 » 09 črc 2012, 20:39

Supr !
Nahodil jsem to během 20s.
Díky za jednoduchej návod.
Přijímám zakázky na skripty/pluginy v PHP/Javě za malý poplatky! A kup mi sušenku :) Obrázek Obrázek
⇨Projekt Market⇦

Qentus
Příspěvky: 91
Registrován: 08 črc 2012, 16:00
Reputation: 0

Re: PEX via MySQL - Migrace (2.díl)

#3 Příspěvekod Qentus » 09 črc 2012, 20:44

To jsem rád. Až budu mít čas, tak přichystám další díl obsahující triky a tipy pro usnadnění života.
Pokud vám má rada pomohla, odměňte mě prosím karmou. Díky

Uživatelský avatar
Welton123
Příspěvky: 2388
Registrován: 08 úno 2012, 17:54
Reputation: 0
Kontaktovat uživatele:

Re: PEX via MySQL - Migrace (2.díl)

#4 Příspěvekod Welton123 » 09 črc 2012, 20:52

Když dávám do DB toto:

Kód: Vybrat vše

INSERT INTO `permissions_entity` ( `name`, `type`, `prefix`, `suffix` ) VALUES ( 'karbon222', 1, '','' );
INSERT INTO `permissions_inheritance` ( `child`, `parent`, `type` ) VALUES ( 'karbon222', 'Admin',  1);
INSERT INTO `permissions_entity` ( `name`, `type`, `prefix`, `suffix` ) VALUES ( 'Welton123', 1, '','' );
INSERT INTO `permissions_inheritance` ( `child`, `parent`, `type` ) VALUES ( 'Welton123', 'Admin',  1);
INSERT INTO `permissions_entity` ( `name`, `type`, `prefix`, `suffix` ) VALUES ( 'coolkiller', 1, '','' );
INSERT INTO `permissions_inheritance` ( `child`, `parent`, `type` ) VALUES ( 'coolkiller', 'MOD',  1);
INSERT INTO `permissions_entity` ( `name`, `type`, `prefix`, `suffix` ) VALUES ( 'Trias_cz', 1, '','' );
INSERT INTO `permissions_inheritance` ( `child`, `parent`, `type` ) VALUES ( 'Trias_cz', 'MOD',  1);
INSERT INTO `permissions_entity` ( `name`, `type`, `prefix`, `suffix` ) VALUES ( 'MINIME', 1, '','' );
INSERT INTO `permissions_inheritance` ( `child`, `parent`, `type` ) VALUES ( 'MINIME', 'Hrac',  1);
INSERT INTO `permissions` ( `name`, `type`, `permission`, `world`, `value` ) VALUES ('MINIME', 1, 'group-VIP-until', 'SkyBlock_nether', '1344333889' );
INSERT INTO `permissions` ( `name`, `type`, `permission`, `world`, `value` ) VALUES ('MINIME', 1, 'group-VIP-until', 'SkyBlock', '1344333887' );
INSERT INTO `permissions` ( `name`, `type`, `permission`, `world`, `value` ) VALUES ('MINIME', 1, 'group-VIP-until', 'SkyBlock_the_end', '1344333891' );
INSERT INTO `permissions_entity` ( `name`, `type`, `prefix`, `suffix`, `default` ) VALUES ( 'default', 0, '','', 1 );
INSERT INTO `permissions` ( `name`, `type`, `permission`, `world`, `value`) VALUES ('default', 0, 'modifyworld.*', '', '');
INSERT INTO `permissions_entity` ( `name`, `type`, `prefix`, `suffix`, `default` ) VALUES ( 'Hrac', 0, '&8','null', 0 );
INSERT INTO `permissions` ( `name`, `type`, `permission`, `world`, `value`) VALUES ('Hrac', 0, 'multiverse.access.World_the_end', '', '');
INSERT INTO `permissions` ( `name`, `type`, `permission`, `world`, `value`) VALUES ('Hrac', 0, 'multiverse.access.World_nether', '', '');
INSERT INTO `permissions` ( `name`, `type`, `permission`, `world`, `value`) VALUES ('Hrac', 0, 'multiverse.access.SkyBlockMultiplayer', '', '');
INSERT INTO `permissions` ( `name`, `type`, `permission`, `world`, `value`) VALUES ('Hrac', 0, 'multiverse.access.World', '', '');
INSERT INTO `permissions` ( `name`, `type`, `permission`, `world`, `value`) VALUES ('Hrac', 0, 'stargate.world.*', '', '');
INSERT INTO `permissions` ( `name`, `type`, `permission`, `world`, `value`) VALUES ('Hrac', 0, 'stargates.use', '', '');
INSERT INTO `permissions` ( `name`, `type`, `permission`, `world`, `value`) VALUES ('Hrac', 0, 'stargate.use', '', '');
INSERT INTO `permissions` ( `name`, `type`, `permission`, `world`, `value`) VALUES ('Hrac', 0, 'falsebook.blocks.lift.use', '', '');
INSERT INTO `permissions` ( `name`, `type`, `permission`, `world`, `value`) VALUES ('Hrac', 0, 'essentials.sign.kit', '', '');
INSERT INTO `permissions` ( `name`, `type`, `permission`, `world`, `value`) VALUES ('Hrac', 0, 'essentials.tpdeny', '', '');
INSERT INTO `permissions` ( `name`, `type`, `permission`, `world`, `value`) VALUES ('Hrac', 0, 'essentials.tpaccept', '', '');


tak mi to hlasi tuto chybu :

Kód: Vybrat vše

Chyba
SQL-dotaz:

INSERT INTO  `permissions_entity` (  `name` ,  `type` ,  `prefix` ,  `suffix` ,  `default` )
VALUES (

'default', 0,  '',  '', 1
);

MySQL hlásí:

#1062 - Duplicate entry 'default' for key 'name'
CZ/SK TOP Databáze MineCraft Serverů ►KLIK◄
Chceš i Ty mít měnící se podpis? ►KLIK◄

Qentus
Příspěvky: 91
Registrován: 08 črc 2012, 16:00
Reputation: 0

Re: PEX via MySQL - Migrace (2.díl)

#5 Příspěvekod Qentus » 09 črc 2012, 20:59

Možná jsi na "Proveď" klikl 2x.

Vyprázdni všechny 3 tabulky od PEX a vlož to znova.
Mě ten tvůj sql script jel vpoho.
Pokud vám má rada pomohla, odměňte mě prosím karmou. Díky

Uživatelský avatar
Welton123
Příspěvky: 2388
Registrován: 08 úno 2012, 17:54
Reputation: 0
Kontaktovat uživatele:

Re: PEX via MySQL - Migrace (2.díl)

#6 Příspěvekod Welton123 » 09 črc 2012, 21:09

Super, asi sjem klikl 2x no ale už to jde



//EDIT: ted ale nejsem admin ani nemam prefix a jeste mam za jmenem Welton123null ://
CZ/SK TOP Databáze MineCraft Serverů ►KLIK◄
Chceš i Ty mít měnící se podpis? ►KLIK◄

Qentus
Příspěvky: 91
Registrován: 08 črc 2012, 16:00
Reputation: 0

Re: PEX via MySQL - Migrace (2.díl)

#7 Příspěvekod Qentus » 09 črc 2012, 21:15

V permissions_entity smaž u řádku hráč kolonku Sufix.
A do toho stejného tablu vlož nový řádek - name Admin, type 0.

Je to nedokonalost převodu na straně pluginu a nebo trochu jiné chování když je to přes Db
Pokud vám má rada pomohla, odměňte mě prosím karmou. Díky

Uživatelský avatar
Welton123
Příspěvky: 2388
Registrován: 08 úno 2012, 17:54
Reputation: 0
Kontaktovat uživatele:

Re: PEX via MySQL - Migrace (2.díl)

#8 Příspěvekod Welton123 » 09 črc 2012, 21:17

Tak to už je, ale ted zase nefunguje pridavani VIP pres sms(automaticky)
CZ/SK TOP Databáze MineCraft Serverů ►KLIK◄
Chceš i Ty mít měnící se podpis? ►KLIK◄

Qentus
Příspěvky: 91
Registrován: 08 črc 2012, 16:00
Reputation: 0

Re: PEX via MySQL - Migrace (2.díl)

#9 Příspěvekod Qentus » 09 črc 2012, 21:21

To bohužel nijak neovlivním.
Když dodáš nějakou dokumentaci k pluginu/script, který to zajišťuje, tak se na to mohu mrknout ale nic nezaručuji.
Pokud je script udělán jen pro perms přes soubor, tak je to celkem nešikovné.

Doporučuji zatím nahrát zálohu hned po tom co si někam uložíš nastavení pro DB.
Když pak budeš pokračovat s DB tak zas jen prohodíš configy.

EDIT: Tak už vím, kde je možná chyba. Zkontroluj jestli je v permissions_entity záznam kde name je název VIP skupiny... pokud ne tak přidej záznam stejně jako záznam pro Admin skupinu
Pokud vám má rada pomohla, odměňte mě prosím karmou. Díky

Uživatelský avatar
Welton123
Příspěvky: 2388
Registrován: 08 úno 2012, 17:54
Reputation: 0
Kontaktovat uživatele:

Re: PEX via MySQL - Migrace (2.díl)

#10 Příspěvekod Welton123 » 09 črc 2012, 21:29

no, to null už sjem vyřešil ale ted nema default skupina zadny prefix(barevne jmeno, ne prefix), to automaticke VIP, do hry to napise, ze hrac blablabla si koupil VIP, v DB je tabulka s tim, ze ma VIP na ten a ten cas ale ve hre ne.
CZ/SK TOP Databáze MineCraft Serverů ►KLIK◄
Chceš i Ty mít měnící se podpis? ►KLIK◄


Zpět na „Návody“

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 9 hostů