Adatbázis: SQL, XML DB

Webes adatbázis kliens

Nemrég keresgéltem eszközöket amikkel el lehet érni egy-egy adatbázist webböngészőből és belefutottam kettőbe is amik nagyon elnyerték tetszésemet.

DbGate - https://dbgate.org/
CloudBeaver - https://dbeaver.com/docs/cloudbeaver/

Amikor nekünk kellett ilyen pár éve az akkori architect ismeretlen mennyiségű mérlegelés után (nesze nektek) a PhpMyAdmin-t felrakta. PhpMyAdmin-ról rengeteget lehet olvasni, itt is számtalanszor feljön és nekünk is elegendő volt akkor. De szerintem egy kalap kaki mind üzemeltethetőségben, mind user experience fronton.

Most viszont felvetült az igény, hogy nem csak MySQL adatbázisokat kéne elérni és elkezdtem arternatívákat keresni, így akadtam a fent említett szoftverekre. Meglepett, hogy mennyire kényelmesebbek, mint a PhpMyAdmin, jobban néznek ki és üzemeltetni sem egy rémálom (legalábbis a DbGate-et). Ugyanakkor hupon semmi találat nincs és nagyságrendekkel kisebb az érdeklődés utánuk, mint az öreg PhpMyAdmin után ami valószínűleg a biztonság terén is jelent valamit.

Találkoztatok már velük vagy más hasonló eszközzel, ami nem PhpMyAdmin?

Valószínűleg be fogom vezetni nálunk a DbGate-et aztán meglátjuk, hogyan muzsikál.

Nagyon kezdő SQLITE kérdés - CASE-WHEN-ELSE kifejezésben művelet+összefűzés - MEGOLDVA

Lehet, hogy nem jól keresek, de nem találok megoldást egy egyszerű lekérdezésre, hogy miért nem az történik, amit várok. Nem dob hibát, csak nem hajtja végre!

Tehát egy CASE-WHEN-ELSE kifejezésben miért nem tudok szöveget hozzáfűzni az eredményhez akkor, ha valamilyen műveletet is végzek rajta?

Példa adatok: SQLite Editor (sqlitetutorial.net)
Lekérdezés: 
SELECT Name ,
        (
    CASE
    WHEN Milliseconds < 300000 THEN
    'Rövid'
    ELSE Milliseconds/1000 || ':'
    END ) AS 'Seconds'
FROM tracks;

Azt várnám, hogy hozzáfűzi a kettőspontot, de nem történik meg. Ha nem végzek műveletet a kiolvasott értéken, akkor viszont összefűzi. Hogyan tudnám ezt megvalósítani egyszerűen? 

[Megoldva] MariaDb root jelszó beállítása

Egy mariaDb 10.1.48 szerver root jelszavát szeretném módosítani, de semmilyen leírt módon nem sikerül.

A dokumentáció szerinti

ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';

parancsot visszadobja a következő hibaüzenettel:

ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'USER 'root'@'localhost' IDENTIFIED BY 'newpassword'' at line 1

Ha a mysql.user táblában írom felül a password mező értékét, az is hatástalan. Továbbra is jelszó nélkül engedi a hozzáférést. Próbáltam a mysqld_safe-et is, --skip-grant-tables paraméterrel, de ez sem segített.

Mi a megfelelő módja a root password beállításának MariaDb alatt?

[Megoldva] MySql SUM 0 helyett NULL

MySql (MariaDb) verzióváltás után ütköztem a következő problémába.

Egy int mezőt egy subselect segítségével töltök fel: mezo=(SELECT SUM(masikMezo) FROM ...)

A régi verzión ez rendben lefutott, de az új verzióban, ha egyetlen sor sem fele meg a subselect feltételének, úgy 0 helyett NULL értéket ad vissza. A NULL azonban nem tárolható a mezőben, csak 0. Az is lehet, hogy eddig is NULL-t adott vissza, de azt automatán 0-ra konvertálta.

A kérdés: hogyan tudom a NULL értékeket 0-ra konvertálni, hogy az UPDATE az új verzión is hibamentesen lefuthasson. Van valamilyen konfigurációs paramétere a MariaDb-nek, amit ez eléri? Vagy a subselectet lehetne picit módosítani, hogy NULL esetén 0 legyen?

Sentry költöztetés

Sziasztok

Adott egy szerveren egy régi Sentry 9.1.2 telepítés, snap store-ból, külön postgres DB-vel. 
Ezt el kellene költöztetnem az új self-hosted dockeres rendszerbe egy új szerverre. Régi szerveren pg_dumpall-al kiexportáltam a DB-t, majd az új szerverre a régi 9.1.2-est próbáltam életre kelteni. 
psql -U postgres < backup.sql parancsot próbáltam, látszólag be is megy minden, viszont amint utána indítok egy docker-compose up-ot, vagy nem bír elindulni, mert a db-ben nem talál meg dolgokat. Ha migrationt vagy a ./install.sh-t futtatom le, akkor pedig tisztán indul, mintha be sem importáltam volna.
Ilyet csinált már valaki? Mit ronthatok el?

Zabbix 5.0 Postgresql history double upgrade

Helló!

Database history tables upgraded:  No

Találtam egy double.sql fájlt, ami talán ezt lenne hivatott megvalósítani, de:

postgres@tarthost:/home/rattila$ psql zabbix <zabbix-install/zabbix-DB-Postgresql-double.sql 
ERROR:  type of inherited column "value_min" must be changed in child tables too
ERROR:  type of inherited column "value" must be changed in child tables too
postgres@tarthost:/home/rattila$

Messze nem értek az adatbázishoz, így kellene a segítség, hogy hogyan lehetne megszüntetni ezt a hibát.
A tábla definíciója:

                                     Table "public.history"
 Column |     Type      | Collation | Nullable | Default | Storage | Stats target | Description 
--------+---------------+-----------+----------+---------+---------+--------------+-------------
 itemid | bigint        |           | not null |         | plain   |              | 
 clock  | integer       |           | not null | 0       | plain   |              | 
 value  | numeric(16,4) |           | not null | 0.0000  | main    |              | 
 ns     | integer       |           | not null | 0       | plain   |              | 
Indexes:
    "history_1" btree (itemid, clock)
Triggers:
    partition_trg BEFORE INSERT ON history FOR EACH ROW EXECUTE FUNCTION trg_partition('day')
Child tables: partitions.history_p2017_11_04,
              partitions.history_p2017_11_05,
              partitions.history_p2017_11_06,
              partitions.history_p2017_11_07,
              partitions.history_p2017_11_08,
              ....sok-sok partíció...
 

Egyébként hogyan lehetne megszabadulni ezektől a régi adatoktól?Bőven elég lenne az idei, esetleg a 2022-es
(léván idén elég keveset futott a Zabbix, mert csak nem rég sikerült visszakalapálnom dec. 25.-ei lebetegedéséből)

Köszönöm!

Zabbix 5.0 DB migrálás PGSQL 10 -> 12

Sziasztok!

root@tarthost:~# pg_lsclusters 
Ver Cluster Port Status                Owner    Data directory               Log file
9.3 main    5434 down,binaries_missing postgres /var/lib/postgresql/9.3/main /var/log/postgresql/postgresql-9.3-main.log
9.5 main    5432 down,binaries_missing postgres /var/lib/postgresql/9.5/main /var/log/postgresql/postgresql-9.5-main.log
10  main    5433 online                postgres /var/lib/postgresql/10/main  /var/log/postgresql/postgresql-10-main.log
12  main    5435 down                  postgres /var/lib/postgresql/12/main  /var/log/postgresql/postgresql-12-main.log
 

Jelenleg a 10-es verzióval fut, de a TimeScaleDB-hez nem találtam deb csomagokat és mindent a 12-höz akart lehozni, amit
meg is csináltam.

Van valami egyszerű módszer, amivel  a 10-esből a 12-esbe tudnám átvinni a teljes Zabbix DB-t?

A DB jelenelg 69GB, a PG partíció 591GB.

Köszönettel:
Ruzsi

Firebird crash

Sziasztok!

Ubuntu 22.04 LTS szerveren van egy Firebird 2.5.9 kiszolgáló pár adatbázissal. <50 kliens éri el a helyi hálóról. Naponta kb. 1-2 alkalommal lehal a DB kiszolgáló. Van esetleg tippetek, merre keresgéljek?

apport.log-ban ennyi látszik:

ERROR: apport (pid 1355) Thu Mar 16 11:31:00 2023: called for pid 913, signal 11, core limit 0, dump mode 1
ERROR: apport (pid 1355) Thu Mar 16 11:31:00 2023: executable: /opt/firebird/bin/fb_smp_server (command line "/opt/firebird/bin/fb_smp_server")
ERROR: apport (pid 1355) Thu Mar 16 11:31:00 2023: is_closing_session(): no DBUS_SESSION_BUS_ADDRESS in environment
 

Megoldva - MariaDB és az utolsó 2 sor

Erőt Egészséget!

Belefutottam egy hibába, vagy valamit én nem értek megfelelően. Segítsetek legyetek kedvesek! Debian11-en alap csomagokkal próbálkozom.

Készítsünk egy test nevű táblát, aminek egy sora van ami egy szám.
CREATE OR REPLACE TABLE test (i INT);

Töltsél bele adatot:
INSERT INTO test VALUES (1),(2),(3),(4),(5),(6);

Ez a lekérdezés lefut:
SELECT * FROM test LIMIT 2 OFFSET 4;

Ez is megfelelő:
SELECT COUNT(i)-2 FROM test;

A két lekérdezést kombinálva viszont 1064-es sytax hibát kapok.
SELECT * FROM test LIMIT 2 OFFSET (SELECT COUNT(i)-2 FROM test);

A teljes hiba:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '(SELECT COUNT(i)-2 FROM test)' at line 1

select VERSION();
10.5.18-MariaDB-0+deb11u1

Na de miért?
Kösz;)
vfero