Adatbázis: SQL, XML DB

Nyári időszámítás

rss.sql:

CREATE TABLE `rss` (
`date` datetime NOT NULL
);

rss.php:

<?php
$rows = mysql_query ( "SELECT `id`, `title`, `link`, `description`, DATE_FORMAT ( date, '%a, %e %b %Y %T' ) as `date2` FROM `" . $this -> data [ 'database' ] [ 'mysql' ] [ 'table' ] . "` ORDER BY `date` DESC LIMIT " . ( int ) $this -> data [ 'main' ] [ 'limit' ] ) or die ( $this -> error ( 12, mysql_error () ) );
while ( $row = mysql_fetch_array ( $rows ) ) {
$foo .= "<item><pubDate>" . $row [ 'date2' ] . " GMT+2</pubDate></item>";
}
?>

Nyári időszámítás figyelőt hogyan lehetne beépíteni?

MySQL Workbench alternatívák?

Mivel a Mysql workbench kb. egy ipari hulladék szintjén leledzik lassan stabilitásával és agyatlan hülyeségeivel (pl. hogy nem lehet táblát megnyitni, ha nincs primary key definiálva -- hogy miért nincs, nem érdekes), így keresnék valami alternatívát.

Szóval, ki tud valami olyasmit, ami:
- desktop app (phpmyadmin és hasonlót hagyjuk).
- lehet benne normálisan queryket reszelni és nem hal el attól, ha kicsit nagyobb adatmennyiséget kell megmozgatni.
- stabil, működik és a bugjaival kell küszködnöm.
- Queryk írogatására kell, GUI-s designer funkciók nem érdekesek.
- van Windowsra.

Előny:
- többablakos modell (mint pl. a PgAdmin)
- ha van valami okos "kódkiegészítő" funkciója (mint pl. az MSSQL Management Studioja egész okos tud lenni időnként.)
- ha kell tud exportálni pl. CSV-be, XML-be vagy bármi olyanba, amit meg tud nyitni az Excel is.
- van OSX-re is.
- nem bloated.

Előre is köszi.

PostgreSQL, dump-restore, 8.1 - 8.4

Sziasztok!

Segítséget szeretnék kérni.

Egy Postgre 8.1 alól kell az adatbázisokat és a jogosultságokat átvinni egy 8.4-et futtató kiszolgálóra. A nagy verzióváltás miatt a pg_dump - psql párossal nem sikerült még.

Hogy lehetne megoldani csak konzolból? Lehet-e az új kiszolgálón egyéb felhasználó alá visszatölteni a dumpot?

Előre is köszönöm!
Oli

MySQL InnoDB helyreállítás

Sziasztok,

Egy adatbázis táblát szeretnék helyreállítani IDB állományból (innodb_per_table). A MySQL leírás szerint a következő lépésekkel működnie kellene:

LOCK TABLES auth_user WRITE;
ALTER TABLE auth_user DISCARD TABLESPACE;
# Régi IDB kiterjesztésű fájl másolása a megfelelő helyre
ALTER TABLE auth_user IMPORT TABLESPACE;
UNLOCK TABLES;

A gondom az, hogy az IMPORT TABLESPACE parancs kiadásakor a következő hibát kapom:

InnoDB: MySQL is trying to use a table handle but the .ibd file for
InnoDB: table adatbazis/auth_user does not exist.
InnoDB: Have you deleted the .ibd file from the database directory under
InnoDB: the MySQL datadir, or have you used DISCARD TABLESPACE?
InnoDB: Look from
http://dev.mysql.com/doc/refman/5.1/en/innodb-troubleshooting.html
InnoDB: how you can resolve the problem.
120406 14:11:57 [ERROR] Got error -1 when reading table './adatbazis/auth_user'
120406 14:11:57 InnoDB: cannot calculate statistics for table adatbazis/auth_user
because the .ibd file is missing. For help, please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.1/en/innodb-troubleshooting.html

Annak ellenére, hogy a fájl a helyén van, és a jogok is megfelelőek. Találkozott már valaki ilyen hibával?

Előre is köszönöm!

Megoldható-e? PostgreSQL slave masterré alakítása master hiba esetén

Sziasztok!

Bocsi, ha láma a kérdés, és nem néztem eléggé utánna, de határidős tender van, és csak egy igen vagy nem érdekel :)
Az a kérdésem, hogy postgresql master - slave replikáció esetén megoldható-e, hogy a master kiesése esetén a slaveből mastert csináljak, és a hiba elhárítása után mondjuk a régi masterből meg slavet, hogy ne szakadjon meg a kontinium?

Előre is köszi.

MySQL inkorrekt frm fájlok

Sziasztok!

Meghalt egy Debian 5-ös szerver, és volt rajta egy adatbázis. Nem tudtam kidumpolni, mert a MySQL démon elindíthatatlan, ez nem is lényeg. (utolsó mentés pár napos, de a friss adatok miatt kellene kimenteni)

A dumpolási lehetőség hiánya miatt, csak "nyersen", másoltam át az adatbázist egy új szerverre.

És a PHPMYADMIN-ba ez az eredményem:

Hogy nem lehet megnyitni a táblákat a következőket írja ki: in use

Belső tartalma:
SQL query:

SHOW INDEX FROM `as_doc_store_file` ;

MySQL said:

#1033 - Incorrect information in file: '.\xxx\as_doc_store_file.frm'

REPAIR TABLE nem működik.
Valaki futott már ilyen hibába? Előre is köszönöm a segítséget.

Stellar Phoenix Database Recovery for MySQL nevű programmal lehet látni az egész adatbázis tartalmát.

Üdvözlettel, Zentus

Tömeges UPDATE SELECT

Hi All!
Egy kis MySQL segítségre lenne szükségem, van egy lekérdezésem:

SELECT z1.id, z1.user_id, z2.id, z2.user_id, z2.zimbra_id, z2.email_address FROM (SELECT * FROM disabled_ids WHERE zimbra_id IS NULL) z1 JOIN (SELECT * FROM disabled_ids WHERE zimbra_id IS NOT NULL) z2 ON z1.email_address = z2.email_address;

+-----+---------+-----+---------+--------------------------------------+--------------------------+
| id | user_id | id | user_id | zimbra_id | email_address |
+-----+---------+-----+---------+--------------------------------------+--------------------------+
| 111 | 46 | 554 | 0 | 83c4db0c-xxxx-yyyy-zzzz-5a58c28d8a38 | matula.bacsi@tuskevar.hu |
+-----+---------+-----+---------+--------------------------------------+--------------------------+
....
+-----+---------+-----+---------+--------------------------------------+--------------------------+
139 rows in set (0.04 sec)

Ez azt kérdezi le, hogy a disabled_ids nevű táblában mely címek vannak benne kétszer: 0-ás és valós user_id -val. Ez így tiszta sor, megy szépen.

A feladat azonban az lenne, hogy UPDATE -eljem a user_id -t azokban a sorokban ahol a zimbra_id nem üres (NOT NULL)

Tehát kb ez:

UPDATE disabled_ids SET user_id .....?

Na de a többi az kifogott rajtam, mi az update vége.

MySQL lekerdezes ciklusban + Qt [MEGOLDVA]

Sziasztok!

Ket program van osszekapcsolva adatbazison keresztul. Egyik beirja a valtoztatast az adatbazisban, a masiknak eszre kell vennie es reagalni.

A masodik programmal lenne kerdesem, amelyik figyeli a valtoztatasokat.
Inditottam egy szalat, amelyben talalhato egy ciklus:


while (!exit)
{
if (query.exec(sql_cmd))
{
while(query.next())
{
//Lekerdezes eredmenyenek a begyujtese
}

// Lekerdezes eredmenyenek az osszehasonlitasa az elozo eredmennyel.
// Ha van valtozas akkor reagalni ra.
}
}

A problema, hogy csak bizonyos iteracio szam alatt mukodik, az felett a QSqlQuery kulonfele hiba uzeneteket ad vissza:
-MySQL server has gone away QMYSQL: Unable to execute query
-Lost connection to MySQL server during query QMYSQL: Unable to execute query
-Valami olyasmi hogy nem tudja az eroforrasokat felszabaditani.

Elgondolkodtam hogy ez-e a helyes ut? Mert azert ez folyamatos szerver terheltseget okoz. Talan be kellene tennem egy timer-be a kodot es mondjuk 500ms-ra allitva az ismetelt vegrehajtasi idot.
Mi a velemenyetek?
Mit mondana a nagy konyv?
Ugyanis olvastam informaciot a isActive() finish() metodusokrol de nem segitett.

Elore is koszonom a tanacsokat.
ui: Hogyan kell hasznalni a -t? Mert nekem nem csinalt "code indent".

Ugy tunik meg van a hiba!!
Nem figyeltem es ez okozott problemat es rejtelyes hibauzeneteket.

Fo szalban letrehoztam az adatbazis kapcsolatot (ami qsqldatabase tipusu persze). Munkaszalakban ugyanugy letrehoztam mas kapcsolatnevvel az adatbazis kapcsolatot pl.: QSqlDatabase db; db.addDatabase("QMYSQL","1");

Eddig OK. DE! A munkaszalban elegansan es nem figyelve ezt hasznaltam:
QSqlQuery query;
query.exec("AKARMILYEN SQL PARANCS");

Mi a baj? A QSqlQuery query az alapertelmezett adatbazis kapcsolatot hasznalja fel, ami a foszalban talalhato. Ha tobb szalbol probaltam futtatni a query.exec()-et akkor osszeomlott a program.

Megoldas? QSqlQuery query(db); MINDEN KULON SZALBAN!!!!!!!

apache, mysql, űő gondok

Udv!

Valoszinuleg dunat lehetne rekeszteni az ilyen problemakkal, de valahogy megsem tudom tulverekedni magam ezen a probleman, pedig mar parszor belefutottam.

Van egy apache2 teljesen default beallitassal, alatta egy debian fut, es van egy mysql server. Ha egy postos lekerdezes eredmenyet be akarom irni az adatbazisba, az

ű

helyett pl.

& #369;

jelenik meg. Na most tcp szinten ez megy az apache2 fele:

%26%23369%3B

, ami ugye a fenti 6 karakter kodja.

Na most nyilvan azt szeretnem, hogy a bongeszo altal elkuldott

ű

karakter helyesen jelenjen meg az adatbazisban. Hogyan tudom ezt megtenni?

A mysql kodolasa jelenleg

latin2_hungarian_ci

, eredetileg valami

latin1_swedish_ci

volt, es probaltam az

utf8_hungarian_ci

- t is, de mindegyikre ugyanazt az eredmenyt kapom.

A kerdesem hogyan lehetne ezt megoldani? Az apache beallitasait lehetoseg szerint nem szeretnem valtoztatni. Annyit mondjuk kiprobaltam, hogy ha hozzaadok egy

AddDefaultCharset UTF-8

sort az apache konfighoz, akkor ez a problema megoldodik, es jok lesznek az ujbol bevitt karakterek, de ez sajna most nem jatszik, mert a fajlok, es az adatbazis kodolasa is mas. Szoval, ha lehet, mindenkeppen adatbazis (es lehetoleg csak az adott adatbazis) szinten szeretnem megoldani.

Koszi a valaszokat.

Lekérdezés - sorokból oszlop

Sziasztok!

A következő a probléma, amire szeretnék megoldást találni: van 1 db tábla amiben a következő séma szerint vannak az adatok
nev azonosito gyujto adat
--------------------------------------
aaaa 1234 1 344
aaaa 1234 2 543
aaaa 1234 3 876
stb.
Az lenne a lényeg, hogy a lekérdezés eredménye a következő legyen:
nev azonosito 1 2 3
-----------------------------------------
aaaaa 1234 344 543 876

Milyen ötletetek van?