Adatbázis: SQL, XML DB

GUI egy joomla adatbázis mentéséhez

Sziasztok.

Láttam egyszer régebben valahol futólag egy olyan GUI felületet, amelynek segítségével egy létező honlap joomla adatbázisát le lehetett mentegetni, sőt, vissza is lehetett állítani egy korábbi mentésből.

Tudom, hogy vannak már olyan jumla-alkatrészek, mellyek ezt megteszik, de inkább ilyesmivel szeretném ezt megoldani, hogy aztán menjen egy parancssoros megoldás is a jövőben (általában így szoktam)

Állítólag sokféle GUI van, egyikhez sem értek, sql adatbázisokhoz mélyebb szinten még nem volt közöm.

Végső cél valami olyasmi lenne, hogy egy honlap sql adatbázisát lementem, ftp-vel is a teljes könyvtárstruktúrát, majd tárolom és örülök. Ha meg baj van, mert valaki megint betört, iszok egy kávét és visszamásolgatom a dolgokat. Ez így egyszerű, de még sosem csináltam önállóan, meg szeretném érezni az ízét.

Szóval elsőre ki mit ajánlana azon kívül, hogy hagyjam abba a joomla-t és térjek át pl. Drupalra?

[megoldva] különböző tábla join annak függvényében, hogy adott érték null vagy sem

Üdv,

(Google-el nem jutottunk düllőre, "conditional join" ésatöbbi nem talált jókat.)

Feladat:
Attól függően, hogy adott sorban az "id" vagy a "mozgas" oszlopban van nem-NULL, join-olni egy adott táblát.

Történet:
Adott egy naplótábla, amiben van két féle termék, egyiknek a "gyszam", másiknak a "mozgas" táblában vannak az adatai. Gyakorlatilag egy felhasználó ID van tárolva mindkettőben.

Magyarázat:
Adott termékadatok az első 3 joinnal lejönnek, de, van a naplónak (cassa tábla) két oszlopa, egyik a "mozgas", másik az "id". Ha telefon, akkor "mozgas" oszlopban "(NULL)" van, ha tartozék, akkor "id" oszlopban van "(NULL)", és a másik oszlopokban van egy ID, ami csatolja őket (join-ok alább).

Azt kéne megoldani, hogy ez alapján csatoljuk be a táblákat, egyik sorban ezt, másikban azt, és a visszajövő felhasználó ID alapján a felhasznalo tablat is bekössük, felhasználó nevet beírjuk. Lehetőleg ugyan abba az oszlopba.

SQL képességeivel nem vagyok tisztában, hogy mennyire képes IF-eket kezelni, egy adott oszlopba beírni két külön forrásból jövő adatot, stb.

MINDEN EGYÉB MEGOLDÁSRA IS NYITOTT VAGYOK.

Alábbi próbálkozásom, amibe kéne még a feltételes csatolás:

SELECT cassa.datum, cassatip.cassatip_nev, osszeg, penzvan, prntip.prntip_nev, cassa.tetel, cassa.megjegyzes, fiztip.fiztip_nev, felhasznalo.felhasznalo, gyszam.felh_elad
FROM cassa
INNER JOIN cassatip ON cassatip.cassatip = cassa.cassatip
INNER JOIN prntip ON prntip.prntip = cassa.prntip
INNER JOIN fiztip ON fiztip.fiztip = cassa.fiztip

# ha tartozék
INNER JOIN mozgas ON mozgas.mozgas = cassa.mozgas
INNER JOIN felhasznalo ON felhasznalo.felhasznalo = mozgas.felh_id

# ha telefon
INNER JOIN gyszam ON gyszam.id = cassa.id

ibdata shrink [megoldva]

Van egy 15GB-s ibdata-m, ami valójában már kevesebb adatot tartalmazhat, csak nem lehet karcsúsítani.
Dumpolnám és különálló fájlokba raknám azokat a táblákat, amik még benne vannak, csak nem tudom, hogy mely táblák érintettek.
Tudtok valami egyszerű lekérdezést, ami megmondja, hogy egy tábla melyik fájlban található?
Mert így nem kellene a teljes adatbázist kidumpolni.

Köszi!

MySQL 5.1 bigint túlcsordulás lekezelése

Sziasztok,

MySQL doksiból az jön le nekem, hogy v5.5.5-től kezdve tud hibát dobni a db integer túlcsordulásnál:

"As of MySQL 5.5.5, overflow during numeric expression evaluation results in an error. For example, the largest signed BIGINT value is 9223372036854775807, so the following expression produces an error:

mysql> SELECT 9223372036854775807 + 1;
ERROR 1690 (22003): BIGINT value is out of range in '(9223372036854775807 + 1)'"

Viszont nálam 5.1.x van, és BIGINT-nél ez a kifejezés:

select cast(9223372036854775807 + 1 as signed);

Ezt adja:

-9223372036854775808

Vagyis túlcsordul mindenféle kivétel és hibaüzenet nélkül. Jól sejtem hogy ez 5.1.x-en semmilyen trükkel nem lekezelhető?

Előre is köszi!

[megoldva]mysql táblába: insert into if not exist

Sziasztok!

Csak pár napja babrálok mysqlben, több kevesebb sikerrel, most egy ideje bénázok itt ezzel és a segítségeteket kérném mert elfogyott a türlemem, tehát:

mysql> desc lekerdezett_nyomtatok;
+-------------+--------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+-------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| ip_cim | varchar(16) | YES | | NULL | |
| sorozatszam | varchar(100) | YES | | NULL | |
| szamlalo | varchar(100) | YES | | NULL | |
| ekkor | timestamp | NO | | CURRENT_TIMESTAMP | |
+-------------+--------------+------+-----+-------------------+----------------+
5 rows in set (0.00 sec)

mysql>

na most ezt a táblát szeretném feltölteni ipcímekkel úgy, hogy minden ipcím csak egyszer szerepeljen. Hogy tudnám ezt legegyszerűbben megoldani?
így adok hozzá ipcímet:
mysql> INSERT INTO lekerdezett_nyomtatok (ip_cim) VALUES ('10.0.1.65')

előre is köszönöm a segítséget.

MySQL adatbázis visszatöltése után nem jók a karakterek

Sziasztok!

Adott egy szerver UTF8-as fájlrendszerrel.
Mysql 5.1.49

Az adatbázisokról mentés készül ilyen formában cron segítségével:
mysqldump -pxxxxxx -u felhasznalo adatbazis > /backup_utvonal/mysql_databases/datum-adatbazis.sql

Így létre jön egy fájl, amit ha a következőképpen visszatöltök:
mysql -u felhasznalo -p IDE_TOLTOM_VISSZA < datum-adatbazis.sql

akkor az ékezetes karakterek nem lesznek jók.
Mit hibázok?

A script fájl utf8, a létrejött backup file utf8, az adatbázis utf8, a táblák utf8-ban vannak és a mező is utf8 amiben rosszak az ékezetek.
Ha belenézek a fájlba, akkor ott tök jól vannak az ékezetek.

Ha a script elejébe beírom, hogy "SET NAMES 'utf8';" nem számít neki. Ugyanúgy rossz.

Tudna segíteni valaki?

Üdv: redman

Postgresql teljes letúrása

Debian squeezy az oprendszer. Konzolos módman, tehát nincs DE. Az apt segítségével eltávolítottam és a helyére sql került. De sajnos a daemonban benne maradt így bootoláskor sipítozik hibára. Hogyan tudnám teljesen eltávolítani, beleértve az adatbázisokat, démont, mindent?
Gondolom felhasználót is létrehozott hozzá, természetesen azt is eltávolítanám.

segítséget kérnék ismét

A következő problémám támadt.
A gépemen : MySQL client version: 5.0.51a , de ahová fel akarom rakni , Szerver verzió: 5.5.11-log verzió van.

Miért nem megy a módisítás stb...?

az atw-n is működik: http://mentesek.atw.hu/admin/lista.php


<? include("dbconn.php") ?>

<?
$parancs = "SELECT * FROM adatok ORDER BY nev";
$eredmeny = mysql_query($parancs);

$szin = "lightgrey";

while ($sor = mysql_fetch_array($eredmeny)) {
if ($szin=="lightgrey") {
$szin = "white";
}
else {
$szin = "lightgrey";
}
?>

">

<?
}
?>

Név Status  
<?= $sor["nev"] ?> <?= $sor["status"] ?> &nev=<?= urlencode($sor["nev"]) ?>&status=<?= $sor["status"] ?>">módosítás
 
">törlés

<?
mysql_close($kapcsolat);
?>

[megoldva]adatbázis lekérdezés

Sziasztok!

Van egy adatbazis nevű adatbázisom,amiben van egy adatbazis nevű táblám.
A tábla tartalazza a Nev,szam mezőt.
Hogyan tudom azt megcsinálni,hogy vizsgálja meg,hogy ezek léteznek -e, ha nincs akkor megcsinálja?

pl: Név--> Kovács István; szám--> 25

A másik kérdésem az lenne,hogy ha beírom a nevet, akkor kiírja a hozzá tartozó számot?

Köszönöm.

MySQL replikáció

Sziasztok!

Szeretnék adatbázis replikációt csinálni, találtam is leírást, mindent úgy csináltam ahogyan írta, csak az a gond, hogy a Master Log Position nem változik. A master(Debian 6.0 i686) és a slave(Debian 6.0 amd64) VPN-nel van összekötve.

Mi lehet a gond? Miért nem változik a Master Log Position, ha beleírok, átírok, letörlök vagy akármit is csinálok a replikálandó adatbázissal?

Előre is köszi a segítségeteket!