- R_volution médialejátszók
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Azonnali VGA-s kérdések órája
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- ROG Strix G16 notebook: tökéletes harmónia
- HDD probléma (nem adatmentés)
- Véget vetne a hibrid magdizájnnak az Intel?
- Fujifilm X
- Milyen monitort vegyek?
- Bluetooth hangszórók
Új hozzászólás Aktív témák
-
bozsozso
őstag
válasz
Apollo17hu #2099 üzenetére
Na meg is van, köszönöm a segítséget, mert Te jutattál el a megoldáshoz:
SELECT date_format(STR_TO_DATE("28.01.2020", "%d.%m.%Y"),"%Y%m%d");
Eredmény:20200128
Nagyon nagy segítség volt a linkelt függvény oldal ahol ki is tudtam próbálni. Nem ismertem ezt az oldalt.
-
bozsozso
őstag
válasz
Apollo17hu #2097 üzenetére
Ez működik csak mint írtam nekem a dátum ilyen formában van az adatbázisban:
28.01.2020 -
bozsozso
őstag
válasz
Apollo17hu #2095 üzenetére
Köszönöm az LPAD függvény az jó lesz, de a DATE_FORMAT-nál nem tudok rájönni hogyan tudnám megfordítani a dátumot. Ugyanis a nekem nap.hónap.év formában van. Jó lenne ez is ha meg tudnám fordítani a dátumot.
-
bozsozso
őstag
Sziasztok,
3 kérdésem lenne ha tudtok légyszi segítsetek.
1.Ha egy adatbázisban így jelenik meg a dátum: 28.01.2020 azt egy SELECT-el hogyan tudom az alábbi formában megjeleníteni: 20200128?
2. Szeretnék egy adatbázisban lévő adatot feltölteni az elején "0"-kal ez hogyan tudom ezt megadni szintén SELECT-ben?
3. Illetve IBExpert-ben a nem fogadta el oszlopnévként ha 0-val kezdődött. Ez valahogy megoldható? -
samujózsi
senior tag
Van egy linuxon, docker konténerben futó MySQL 8.x szerverem.
Első futáskor van egy random passwordje a rootnak, amit meg kellene változtatni.
O.K., a mysqladmin password -p segítségével működik a dolog.
De ha ehelyett belépek a mysql kliensbe és ott próbálkozom aSET PASSWORD = PASSWORD('asdfsdfafsd');
paranccsal, akkor elhajt, hogy szintaktikailag nem stimmel.
Valami ennyire megváltozott az 5.x óta, csak nem találom?
Mert a stackoverflow-n még a fenti javaslatot találtam. -
Megérkezett a phpMyAdmin új verziója:
-
laracroft
senior tag
Sziasztok
Frissíteni szeretném a TABLE1 táblában lévő értékeket a TABLE2 táblában lévő értékekkel. Az alábbi kódot használva syntax error-t kapok.
Mit rontok el?UPDATE
T1
SET
T1.name = T2.name,
T1.address = T2.address,
T1.age = T2.age
FROM
TABLE1 AS T1
INNER JOIN
TABLE2 AS T2
ON
T1.id = T2.id
AND
T1.timestamp = T2.timestamp
WHERE
T2.timestamp > '1572566400'Köszi
-
laracroft
senior tag
-
martonx
veterán
Remélhetőleg ezt szeretted volna: [link]
-
laracroft
senior tag
válasz
martonx #2080 üzenetére
Örök hálám a megoldásodért, de szégyellve magam újabb kérdést tennék fel.
A megoldásod segítségével sikerült a koordinátapárok között megtett távolságot kiszámolnom és jelenleg ITT tartok kb.
Az odometer mezőben szeretném látni az autó által addig megtett utat. (addigi distanceKM értékek összeadása)
Ezt hogyan tudnám megtenni?
Előre is köszönöm -
martonx
veterán
válasz
laracroft #2079 üzenetére
Közben rájöttem, hogy a Dbfiddle sokkal jobb, mint az sqlfiddle, ami konkrétan nem működik.
MySql 8-al csináltam meg, ami már lassan felnő a normális adatbáziskezelők szintjére (ismeri a window függvényeket, és a common table expression-öket).Szóval itt a megoldásom, remélem jól értettem, és ezt szeretted volna: [link]
-
-
Apollo17hu
őstag
-
laracroft
senior tag
Sziasztok
Van egy táblám, ami tele van különböző autók különböző GPS koordináta párjaival.
Szeretném megtudni, hogy az adott rendszámú autó mennyi utat tett meg az előző helyzete óta.| accountID | deviceID | date | latitude | longitude | distance |
| --------- | -------- | ------------------- | ------------ | ------------ | ---------- |
| nev | ABC123 | 2019-11-05 00:05:00 | 47.520246667 | 19.058816661 | 0 |
| nev | ABC456 | 2019-11-07 00:05:00 | 47.886514112 | 19.639852321 | 0 |
| nev | ABC789 | 2019-11-09 00:05:00 | 47.412351221 | 19.856214785 | 0 |
| nev | ABC123 | 2019-11-11 00:05:00 | 47.365985254 | 19.652321452 | 0 |
| nev | ABC456 | 2019-11-13 00:05:00 | 47.755652221 | 19.322152152 | 0 |
| nev | ABC789 | 2019-11-15 00:05:00 | 47.632565899 | 19.745555545 | 0 |
| nev | ABC123 | 2019-11-17 00:05:00 | 47.520246667 | 19.058816661 | 0 |
| nev | ABC456 | 2019-11-18 00:05:00 | 47.886514112 | 19.639852321 | 0 |
| nev | ABC789 | 2019-11-19 00:05:00 | 47.412351221 | 19.856214785 | 0 |
| nev | ABC123 | 2019-11-20 00:05:00 | 47.365985254 | 19.652321452 | 0 |
| nev | ABC456 | 2019-11-21 00:05:00 | 47.755652221 | 19.322152152 | 0 |
| nev | ABC789 | 2019-11-22 00:05:00 | 47.632565899 | 19.745555545 | 0 |Igazából nem a matekra, hanem arra lennék kíváncsi, hogy hogyan tudnám neki megadni a számoláshoz szükséges lat1, lon1 és lat2, lon2 párokat.
Előre is köszi
-
Dißnäëß
nagyúr
Sziasztok !
Kísérletezek (HA) egy 3 gépes MySQL cluster beröffentésével.
A hivatalos doksi szerint van az NDB Cluster Engine-es megoldás és van az InnoDB Cluster engine-es. Utóbbival mókoltunk.
Tesztrendszer, app mellé MySQL router, azon keresztül hívható a Primary és a két Secondary, minden oké.
Azaz majdnem. Ha a Primary-t offline-ba teszem, a MySQL Router automatikusan látja az InnoDB cluster változását és route-ol minden forgalmat a következő node-ra, ami egy secondary.
Ugyanis egyik secondary node sem veszi fel (legalább egyiküknek kéne) a Primary szerepet, pedig doksi szerint ennek meg kell történnie automatikusan.
Default beállítás minden, nem vagyok túl nagy SQL guru, szóval nincs agyonkonfigolva még a rendszer, csak egy basic setup.
1) Én csinálok vmit rosszul, vagy az automatic failover és társai további manuális konfigolást igényelnek, hogy működjenek ?
2) Illetve NDB Cluster és InnoDB Cluster közötti különbségeket látva nem feltétlen tiszta számomra, melyik is jobb milyen célra. Néztem egy összehasonlítást, NDB Cluster-t úgy javasolja nagyobb troughput-ra, azaz teljesítmény igényre, hogy közben az InnoDB doksija szerint a 3 féle replikációs módszer közül (async, semisync, sync) a full sync megoldás a leglassabb, de cserébe legkonzisztensebb és egyben ez jellemzi az NDB Cluster-t is és ha full sync replikációt akarunk a node-ok között, akkor NDB-vel menjünk inkább. Még ez is oké, de akkor miért van javasolva az InnoDB megoldásai között
(Inkább logikai bukfenc, de az is lehet, hogy én nem látok vmit).
3) Illetve failover/átállás nem várt hiba esetén: InnoDB és NDB Cluster megoldás között tényleg igaz, hogy InnoDB átállás ~30mp, NDB pedig <1s, gyakorlatilag instant ? (InnoDB failover esetén az appnak ki kell bírnia 30mp állást magyarul?)
Köszi a segítséget.
-
gilfoyle
őstag
Köszi mindenkinek, a left join jelentősen begyorsította a lekérdezést, 1s-nál rövidebb idő alatt lefut.
Sajna táblánként csak egy index van, a felsorolt mezők nagy része nem az. -
martonx
veterán
Indexeket ellenőrizd. Csomó mezőre szólnak a joinok.
-
gilfoyle
őstag
Lehet nem ide tartozik, mariadb vs mysql problémám van.
Ugyanaz az sql lekérdezés a mysql-ben 0,54s (ubuntu server 18.04) alatt fut le, a mariaban 8,623s (debian 10)...select * 4 tábla joinolásával, 83 rekord az eredmény, rekordonként 156 mezővel.
SELECT *
from t1
join t2 on (t2.mezo1 = t1.mezo1 or t2.mezo1 = t1.mezo2 or t2.mezo1 = t1.mezo3)
join t3 on t1.mezo4 = t3.mezo1
join t4 on t2.mezo2 = t4.mezo1
where t2.mezo1 = 18
and t2.mezo3 = 1
and t1.mezo4 not like 'xx-%'
and t1.mezo4 not like 'yy-%'
and t1.mezo4 not like 'zz-%'
order by t1.mezo5 desc, t1.mezo6, t1.mezo7, t1.mezo8, t1.mezo9 descMit kellene optimalizálnom?
-
martonx
veterán
Join kétszer
-
kovacsga39
friss újonc
Sziasztok,
Ebben a kérdésben szeretnék segítséget kérni. Egyszerűen nem tudom, hogy kellene megoldani úgy hogy ne legyen két model táblám
.
Munkalap tábla:
munkalapId | bejovoModelId | kimenoModelId
1 1 2Model tábla:
modelId | modelName
1 Sportos
2 HagyományosEzt szeretném a lekérdezés eredményének:
MunkalapId | bejovoModel | kimenoModel
1 Sportos HagyományosMegoldható e egy Select lekérdezéssel ha igen mi lenne a megoldás?
-
sonar
addikt
válasz
digitalson78 #2062 üzenetére
Ilyen célre sosem használtam google megoldását, erről nem tudok nyilatkozni.
MySQL: egy alap install szerintem nem okoz gondot senkinek akinek van egy kis informatikai tudása (teszteléshez elég a next next finish)
A dolgok onnantól kezdenek komplikáltak lenni amikor a táblákat kell megszerkeszteni meg a jogosultságokat.
Táblánál speciel előre definiálnod kell az oszlopokat és azoknak a típusait. Ezzel tudod korlátozni, hogy milyen adatok kerüljenek be a táblába. Ez lehet megengedő és szigorú. Feladatja válogatja, hogy melyik a célszerű. (persze mindent lehet utólag is módosítani)
És akár simán megoldható, hogy akinek kell azok csak befelé küldik az adatokat (tehát nem látnak semmit a nagy egészből) akinek meg kell azok meg mindent látnak.
Annó régen csináltam olyat, hogy volt egy excel ami befelé küldte az adatokat, egy másik ami meg kiolvasta.
Csak mert excel az excel és tud kapcsolódni DB-hez.
így minden adat kontrollálva volt, szeparálva a jogosultágok és egyből jöttek a grafikonok. Backup kérdés is megoldott volt.
Manapság YT a legjobb kiindulási pont. Meg rá kell szánni az időt, hogy ki próbálja a dolgokat az ember.Más:
Warning: Researcher Drops phpMyAdmin Zero-Day Affecting All Versions -
martonx
veterán
válasz
digitalson78 #2062 üzenetére
Google Sheet, Office 365-ös online excel teljesen jók erre. Legalábbis kezdésnek, egyáltalán kipróbálni, hogy működik-e a koncepció.
Aztán majd, ha esetleg kezd szűkös lenni a mögöttes Google Sheet / Online Excel, akkor majd valóban érdemes lehet egy saját webes admin felületre átültetni, saját DB-vel. -
sonar
addikt
válasz
digitalson78 #2060 üzenetére
Nézd excel és access nem multiuser-es cucc. Mégha azt is hirdetik én nem bízok benne, mert egy shared excellel is sokszor van konflikt.. Illetve egy bizonyos adat felett a munka is nehézkessé válik. Illetve only win.
MySQL-t viszont egyszerre tudja használni mindenki. Ami nehézkes az az, hogy meg kell oldani az adat bevitelt és a megjelenítést. Viszont, multiplatform. Csillió feature-rel. -
digitalson78
friss újonc
Sziasztok!
Nem biztos, hogy jó topikba írom, akkor légyszi segítsetek, hová írjak.
Teljesen kezdő vagyok ebben az ügyben.... (EXCEL-ben nem,ahhoz tényleg jó vagyok)
Nah,szóval: munkahelyem megbízott kis informatikával.
Kérés/megoldás?
Szóval olyan adatbázis rendszert (acces? alapút) kéne csinálnom,ahol különböző kisebb telephelyek beírják (saját jogosultsági korlátozással) napi/heti jelentést munkáról (miből,mennyit,miket csináltak,mennyi pénzforgalmat generáltak). És főnöki kraszter pedig látná az egészet összefésülve.
Én magam ötlete: valami olyan felhős ACCES/EXCEL alapú rendszerbázist kéne kihozni.
Mi szükséges ötlet megvalósításhoz?
Tippeket,javaslatot örömmel veszem. -
bozsozso
őstag
Úgy néz ki a táblákkal megvagyok és jók is lettek. Lekérdezéseket meg tudom csinálni az anyagfelhasználásra is. Nem találok megoldást, de valahogy el lehet forgatni az adatokat. Olyanra gondolok mint az excelben a transzponálás.
Most jelenleg sorokban vannak meg az adatok.
Bolt,dátum, cikk, mennyiség
Azt szeretném elérni, hogy a bolt,dátum, mennyiség maradjon a helyén a cikk pedig átkerüljön az oszlopokba így rövidítve a kimutatást igaz ezzel szélesítem. Ezt mindig jobb megoldásnak látom mint egy cikket több soron felsorolva.
-
bozsozso
őstag
válasz
martonx #2053 üzenetére
A boltok cikk rendeléseiből kell az anyagfelhasználást kiszámolni. Van egy pékség ami gyárt termékeket(kenyér, kifli stb). A termékeknek van anyagfelhasználása(liszt, só élesztő stb) Bejönnek a boltokból a rendelések pl. Kenyérre ki kell számolni az adott napon mennyi anyagra lesz szükség (ez jelenlegi excel táblámban 1db mennyiség amit kézzel összesítenek, bár még nem vetettem el az adatbázisba boltonkénti rögzítést sem). A szállítás meg azért fontos, mert a boltoknak kiszállításra kerülnek a termékek. Valószínűleg nem pont annyit gyártanak le mint amennyi a rendelés volt ezért kell ebből is anyagfelhasználást számolni. Beszerzés anyagokra és egyes külső pékség által gyártott termékekre van. A készletet elég az anyagra számolni ehhez kell a nyitó készlet+beszerzés- a szállított termékek anyagfelhasználása amiből megkapjuk a záró készletet. A külső pékség által szállított termékekre nem fontos a készlet vezetés - bár lehet megcsinálom arra is - mert az ahogy bejön ki is megy. Viszont ennél is kell vezetni a beszerzést és kiszállítást.
-
martonx
veterán
-
bozsozso
őstag
válasz
martonx #2051 üzenetére
Rendben. Csak azért kérem a javaslatokat, mert most tanulgatom az adatbázis kezelést és ha összeállítok egy adatbázist azt szeretném optimalizálni illetve a lekérdezések ne legyenek túl bonyolultak.
Amit ki szeretnék hozni a végén:
Anyagfelhasználás kimutatás rendelésre és szállításra is, napi heti havi szinten.
Szállítás kimutatás boltonként termékenként havonta mennyiségben.
Szállítás kimutatás boltonként termékenként hetente mennyiségben.
Szállítás kimutatás boltonként havonta heti bontásban értékben.
Anyagfelhasználásra egy készletvezetést - nyitó készlet, beérkezett, kiszállított és záró készlet adatokkal mennyiségben.Nagyjából ennyi egyelőre, de ki tudja mit hoz az élet.
-
bozsozso
őstag
válasz
martonx #2049 üzenetére
az egység egy üzlet, most még valami eszembe jutott.
szerk:.Az elvetemült gondolta, hogy egy külön táblába szedjem a rendelés anyagfelhasználást?
rend_anyagfelh ID, anyagID, dátum, mennyiség
ja és ugyanígy a szállított anyagfelhasználást? vagy ezzel túlbonyolítom az egészet? Gondoltam lekérdezéskor egyszerűbben megkapom az anyagfelhasználást, nem kell minden lekérdezéskor számolni csak kiszedni a táblából? Egyszerűbb lenne majd készletet is számolni.
-
bozsozso
őstag
válasz
bozsozso #2047 üzenetére
Lehet túlgondoltam az egészet:
Egység ID, kód, név
Cikk ID, név, ár
Anyag ID, név, ár
Anyagfelhasználás ID, cikkID, AnyagID,mennyiség
Rendelés ID, cikk_ID, rendelés dátuma, mennyiség
Szállítás ID, egység_ID, cikk_ID, mennyiség, szállítás dátuma, száll.lev. számaNa jól elbeszélgetek itt magammal, de legalább alakulgat
-
bozsozso
őstag
Sziasztok,
Kis mysql segítség kellene. Szeretnék létrehozni egy adatbázis ami tartalmazza az alábbi adatok.
Termékeket, anyagokat ehhez tartozó árakat, rendeléseket és kiszállításokat. Szeretném majd rögzíteni a Termékekhez az anyag felhasználásokat. A termékek nagy részének van anyag felhasználása egy párnak pedig nincs, de ez nem is lényeges, mert ezeket felveszem anyag kapcsolat nélkül.
Milyen táblákat kellene létrehozni, hogy normális adatbázisom legyen és a számítási műveletek is gyorsan lefussanak. Számítást a következő adatokkal kell végeznem: temék anyagfelhasználás*rendelt termék mennyiség. 1 anyag több terméknél is szerepel így kellene 1nap 1 anyag teljes felhasznált mennyiség. A rendelés naponta termékenként lenne rögzítve. Ugyanilyen anyagfelhasználás kellene a szállításokra is ami telephelyen,szállítólevél temék és mennyiség szerint lennének rögzítve. Ezt az anyagfelhasználást használnám fel az anyagok készletvezetésénél. Lenne beszerzés az anyagokra(készletvezetéshez) illetve azon termékekre amelyeknél nincs anyag kapcsolat(ezek nem saját gyártású termékek). Beérkeznek és kiszállításra kerülnek. Az alábbi táblákban gondolkodtam és várnám a tanácsotokat, hogy mit csináljak esetleg másképpen. Milyen elsődleges kulcsokat javasolnátok létrehozni?
Az alábbi táblákban gondolkodtam:
Egység ID, kód, név
Cikk ID, név, ár, törölt(I/N)
Kód ID, cikk_ID, anyag_ID, anyagfelhasználás
Anyag ID, név, ár, törölt(I/N)
Rendelés ID, cikk_ID, rendelés dátuma, mennyiség
Szállítás ID, egység_ID, cikk_ID, mennyiség, szállítás dátuma, száll.lev. számaAz ID mindenhol egyedi az elsődleges kulcsokat aláhúztam.
Lehet nem jól gondolkozom, de most tanulgatom a mysql-t és próbálnám létrehozni az adatbázisom. vagy esetleg a Kód tábla nem kellene hanem azt beillesszem a cikk táblába. Olyan gondolatom is támadt, hogy nem lenne külön anyag tábla hanem beviszem a cikkek közés és megjelölöm, hogy az adott cikk termék vagy anyag. Hogy lennének egyszerűbbek, gyorsabbak a számítási műveletek?
Előre is köszönöm a javaslatokat, tanácsokat.
-
Tegnap megérkezett a phpMyAdmin legújabb, 4.9.0.1-es verziója:
-
Agostino
addikt
sziasztok
LOAD DATA LOCAL INFILE
kérdésem lenne. összeraktam minden aspektusát a betöltési szabályoknak, az fogott ki rajtam egyedül, hogy ha a tábla 10 oszlopból áll, de a betöltendő .dat csak 8 oszlopból, akkor tegyük fel beemelés közben csúsztassa a 4. oszlopot a 7. helyre. mondhatnám úgy is töltsön be a 4. és az 5. oszlop közé plusz kettőttehát valami ilyemi, csak a .dat-ra alkalmazva a
SET
után (?)ALTER TABLE ugyfelek ADD COLUMN 'k_azon' INT(6) NULL AFTER 'nev'
x 2 : ) -
-
sonar
addikt
válasz
robi191 #2038 üzenetére
MariaDB leginkább azért jött létre mert az Oracle tulajdona lett a MySQL és ez sok szabadsoftvare-s elvével nem fért össze (licencelésbe nem mennék bele, mert azzal én sem vagyok 100%-ig tisztában) és emiatt a legtöbb distró is MariaDB-vel jön. (hasonló, mint az Oracle Java vs Open Java)
De a MySQL-nek van még más fork-ja is, pl.: Percona.
Teljesítménybeli dolgoknál meg millió meg egy dolog lehet. Kár lenne egy ilyen általánosítással elütni az egészet. Mondjuk én csak MySQL-t használok. De ennek más okai vannak. -
martonx
veterán
válasz
robi191 #2038 üzenetére
Ez hülyeség. Egyébként ezeket a hülyeségeket nem hallani kell, hanem venni egy minimál fáradtságot és utána nézni, hogy mi micsoda. https://en.wikipedia.org/wiki/MariaDB
-
robi191
csendes tag
-
robi191
csendes tag
Üdv,
csak egy kérdésem lenne, mi a helyzet a mysql-mariadb váltással?
Csak fellángolás volt? -
htc07
addikt
sziasztok,
szűz ubuntu 16.04 + mysql 5.7.25-0ubuntu0.16.04.2 .
sehogy sem tudom elérni kívülről.
a my.cnf és a mysql.cnf tök üres, csak kommentezett default szöveg, meg ez:
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/nincs benne bind-address, meg semmi más.
ha beleteszem, hogy bind-address: 0.0.0.0, akkor kiírja, hogy nem engedélyezett a csatlakozás erről a hostról, ha kikommentelem a sort, akkor connection timeout.
iptables átenged mindent, de az ufw-t letiltottam biztos ami tuti, de így sem jó.
belülről be tudok lépni.
van ötletetek?
-
sonar
addikt
válasz
Chrystall #2030 üzenetére
A különbség oka lehet pl.: hogy indexeket, triggereket, tárolt ejárásokat stb... nem mented.
Vagy csak a php myadmin hibásan mutatja.
Állitsd vissza a backupot vhova és nézd össze a kettőt. Melyik tábálában van a különbség.
Kis molyolással mindenre fény szokott derülni. -
Chrystall
senior tag
Sziasztok!
A következő problémám lenne MSQL adatbázis exportálásával: one.com-os accountomról akartam PHPMyAdmin-ból, de 1GB-nál leáll a letöltés, az adatbázis pedig 3,3GB. Próbáltam SSH-val is, ezzel egy 2.7GB-os sql file-t sikerült csinálni az FTP szerverre, amiről aztán le tudom tölteni, nade ez hogyhogy nem 3,3GB? Mikor belépek PHPMyAdminba, ott látszik, hogy a teljes adatbázis 3,3 GB. Egyébként megnéztem a privilages info-t SSH-ban, azt írja minden jogosultság meg van adva az accountomra, szóval emiatt nem lehet probléma. Valakinek van öltete miért nem tölti le ez SSH-ban a teljes 3,3GB-os adatbázist?
-
martonx
veterán
Én még csak alkalmankent se, pont az ilyen peldakodok a nagyvilágból miatt, amiktől sírni tudnék. Hiszen paramezerett querynel nem kellene bohockodni extra validaciokkal, és csak azt validalni, amit tenyleg kell, hogy mondjuk a bejövő string az tényleg email-e, nem pedig kikapni belőle az sql injectiont okozó bármit, validacio címszó alatt. Ebből lesznek aztán a katyvasz spagetti kódok, ami ironikus módon nem a PHP mint nyelv hibája, de valahogy mégis mindig php kodokban jönnek elő ezek az allatorvosi ló esetek.
-
sonar
addikt
válasz
ArthurShelby #2027 üzenetére
bele kellene nézni akkor a file-okba.
Először is a /opt/etc/init.d/S70mysqld tartalmát kéne megnézni és értelmezni.
Ez elég sziszifuszi meló lesz ha nincs meg a megfelelő linux alapod. -
ArthurShelby
addikt
-
sonar
addikt
válasz
martonx #2025 üzenetére
Szia,
Tisztában vagyok az sql injection fogalmával. És az input validationnel rengeteg oda nem való dolgot szűrsz ki. Egy példa kód a nagyvilágból:
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
hozzáteszem, nem kódolok php-ben csak alkalmanként. -
ArthurShelby
addikt
Hali!
Még kezdő vagyok, és ismerkedek a dolgokkal.
Van egy asus routerem, és arra szeretnék föltenni wordpress szervert. Ahhoz van egy leírás, viszont a mysql-nél elakadok. Egyrészt mert már régi/elavult a leírás (már php7 van a tárolóban) és ki kell javítgatni, illetve a van olyan csomag, ami nincs benne (php5-mod-mysql), de annyit már kiderítettem, hogy php7-mod-mysqli kell helyette.
Aztán itt akadok el:mysql_install_db --force
"chown: unknown user root
Cannot change ownership of the database directories to the 'root'
user. Check that you have the necessary permissions and try again".Erre később kaptam ezt a választ: [link]
Lényege számomra az, hogy kicsit több csomagot teszek fel, és az /opt/etc/mysql/my.cnf fájlban a user-nél a root-ot át kell írni adminra, illetve a bind-address-t 0.0.0.0-ra.
De ez sem lesz megoldás:
Ilyen hibaüzeneteim vannak: "cat: can't open '/opt/var/run/mysqld.pid': No such file or directory"
De a mysqld.sock is hiányzik.Valaki tud ilyesmibe segíteni, vagy van valamilyen tapasztalata?
-
Panhard
tag
válasz
martonx #2018 üzenetére
Valójában több feltétel van több értékkel, nem csak az év. Minden feltételnél ott van az "összes" lehetőség is.
Próbáltam a LIKE '%'-ot, ez jó. Így csak egy lekérdezés lesz php-ban. A % visszaad mindent.sql injection problémánál arra gondolsz, hogy GET paramétert ne tegyünk közvetlenül SQL lekérdezésbe, hanem először php-ben ellenőrizzük le az értékét?
-
martonx
veterán
válasz
Panhard #2017 üzenetére
Egyrészt ez így tipikusan sql injection problémás kód
vagy inkább
Másrészt, ha YEAR(date) = 2018 helyett YEAR(date) IN (2018, 2017, 2016 ... ) szintaktikát használsz, akkor máris működik, amit szeretnél. Ehhez nyilván majd egy kis PHP kód módosítás is kelleni fog, hogy ilyen kinézetre hozd a GET-ben kapott paramétereket.
-
Panhard
tag
Sziasztok. Egy weblapon van egy választómező:
<select id="ev" onchange="beir()">
<option value='2018'>2018</option>
<option value='2017'>2017</option>
<option value='2016'>2016</option>
<option value='2015'>2015</option>
<option value='2014'>2014</option>
<option value='osszes'>Összes</option>
</select>Ez egy sql lekérdezért csinál:
$result = mysqli_query($con, "SELECT * FROM helyek WHERE (YEAR(date) = '".$_GET["datum"]."')");
A kérdésem az, hogy van-e valami megoldás arra, ha az "összes" értéket választom ki, akkor az összes évet visszaadja.
Valami olyan, amit a $_GET["datum"]-nál a 'datum' helyett beírni, hogy ne kelljen feltételekkel több lekérdezés között választani.Jelenleg csak olyan megoldást találtam, ha az 'összes' van kiválasztva, akkor egy másik lekérdezést csinálok, amiben nincs benne a feltétel.
-
martonx
veterán
Nyilván bármit meg lehet írni végtelen szarra. Ezért is írtam, hogy az egy dolog, hogy aggódunk, hogy milyen vas kell 15-20 user, meg akár több tízezer adatsor alá
Első körben azt kell elérni, hogy a programozók írják meg normálisra a rendszert, mert addig olyan kényelmes bemagyarázni a naív ügyfélnek, hogy ehhez 8 magos vas kell, meg nem elég a 16 Gb ram
Miközben normálisan megírva akár egy Celeronon 2 Gb rammal röhögve kellene futnia.
Nyilván a konkrétumok ismerete nélkül mindez csak okoskodás, de mennyi ilyet láttam már.Legutóbb olyanba futottunk bele, hogy megkeresett egy ügyfél, hogy már több programozó csapat vérzett el azon, hogy másfél millió soros adattáblában kellene keresni, mindenféle szűréssel, a szűrések kombinációjában részeredményeket mutatni az egyes elemekhez, azaz tényleg elég komplex a dolog, és senki nem tudja az egyes szűrések közötti időt 5 másodperc alá vinni a 8 magos 30Gb memóriás szerverén futtatva (miközben a szerver is vért izzad).
Mi nulláról megírtuk neki a rendszert úgy, hogy 40ms körül szórva jönnek meg a keresés eredmények, és ritkán jár 5% felett a szerver terhelés
Ezen úgy belelkesedett, hogy most íratja velünk újra az összes régi PHP - MySql-es szarját (Asp.Net Core + MSSQL-re, de az architektúra ebben a kontextusban nem is annyira érdekes). -
sonar
addikt
válasz
martonx #2013 üzenetére
No no, és ha minden VARCHAR -ban van letárolva Indexelés nélkül.
Akkor aztán tud füstölni fölöslegesen a vas. Én már láttam olyan slow query logot aminél kiderült, hogy a lekérdezés koncepciója volt sz&r. 1M rekordból 500k-t nézett át. Aztán mikor átirtam akkor meg 1M-ből 200 rekord átnézése után köpte az eredményt.De én továbbra is azt mondom, hogy IO meg RAM amire oda kell figyelni. De egyébként 15-20k rekord nem egy terhelés MySQL-nek.
Apropó. 8-ast próbálta már vki? Mik a tapasztalatok?
-
csongi
veterán
Egybe válaszolnék.
Jelenleg kevés rekord van, de ez hamar eléri a 15-20ezres nagyságot.
ezekből kell kiválasztani a megfelelőt, és a kiválasztással együtt több számolást is el kell végezni.
Ez böngésző felületen, neten keresztül történik.
A szerver gigabites hálózaton van, sávszéllel nagy gond nem lenne.
Csak ez a program futna, semmi más. Ram 16Gb. -
kezdosql
tag
A kicsiben alatt mit értesz?
Pl. max. 10 ezer rekordos napi adatforgalom.
A felhasználók száma kb 10-20 lenne jelenleg, maximum. Ennek fele kb egyszerre terhelné a gépet.
Számolások és nagy adatbázis szűréssel.???
Van ezer termeked, amit a felhasznalok weben lekerdeznek pl. szin es meret szerint, vagy a felhasznalok orankent feltoltenek tobb ezer ujabb rekordot es azokat rendszeresen elemzik?Azért kérdezem mert nem én írom a mysql-t
Perszehogynem, a mysqlt evtizedek ota megfelelo szakemberek irjak, mi csak telepitjuk es hasznaljuk.
-
martonx
veterán
Még mindig nem írtál éppen semmi konkrétumot, ami alapján bullshiten kívül bármi érdemi választ lehetne neked adni
Nyilván mivel nem te írod a rendszert, nem is fogsz tudni ennél konkrétabbat kérdezni, ergo ez így parttalan.Mindenesetre annak esetleg járj utána, hogy a fejlesztők valóban jól végzik a dolgukat? Mert a 10-20 felhasználó, aminek a fele párhuzamosan használja a rendszert, nagyon kicsi számok, szinte nulla terhelést kellene, hogy okozzanak.
Hogy mi a nagy adatbázis, hidd el az is relatív. Van aki a több ezer rekordot már nagynak érzi, van aki meg milliárd rekordokkal, és TerraByte-okkal számol. -
csongi
veterán
válasz
martonx #2007 üzenetére
A kicsiben alatt mit értesz?
Ez már elég összetett, innen már csak felfele van
Win-es környezeteben fut, jelenleg egy I5 ös gépen, és nem szeretnék havi 20ezreket fizetni bérleménybe.
Ezért egy saját szerveren futna, mint ahogy most is.
Csak nem tudom mi lenne a jobb,, egy 8 magos fx vagy 4/8 ryzen, vagy egy 6.generációs i5?A felhasználók száma kb 10-20 lenne jelenleg, maximum. Ennek fele kb egyszerre terhelné a gépet.
Számolások és nagy adatbázis szűréssel.Azért kérdezem mert nem én írom a mysql-t. én a szellemi tőkét adom hozzá, hogy milyen programot kell írni.
És egy idő után szeretném saját szerverre átvinni. -
csongi
veterán
Sziasztok!
Mysql futtatasahoz,milyen parameterek kellenek ahhoz, hogy a megfelelo erossegu gepet ala tudjam tenni?
Kepes a program tobb magot es tobb szalat hasznalni? -
kezdosql
tag
Phpmyadmin-ban kell kezelnem mysql tablakat, excelbol importalva, de par problema adodott.
Ugy tudom, Carchar eseteben max 255, text eseteben max 64kB hosszo lehet a szoveg,
Viszont van longtext tipus is.
A longtext tipus eseteben milyen hosszu lehet a beviendo szoveg?Az utf8 helyett utf16 valoban felere csokkenti a rogzitheto szoveg hosszat?
Az alapveallitas utf8mb4_general_ci, ezt attegyem utf8_hungarian_ci -re vagy utf8mb4_hungarian_ci -re?
Mi a kulonbseg mb4-nel?Excelbe exportalt csv visszaimportalasa eseten hogyan biztosithato, hogy varchar es text ne keveredjen es ne csonkolodjon?
-
laracroft
senior tag
válasz
Apollo17hu #2002 üzenetére
Köszönöm a gyors választ
Értem a lényeget, de sajnos az egymásba ágyazott szintaktikához is elég koki vagyok
Amit elértem az csupán az, hogy sorrendbe tudtam rakni a rekordokat úgy, hogy lássam melyik rekordot kell kivonnom (1.) melyikből (2.) .SET @sor_szam = 0;
select ACCOUNT,DATETIME, (@sor_szam:=@sor_szam + 1) AS num from NAPLO
where ACCOUNT='2801'
ORDER BY DATETIME descErre kérnék még tőletek segítséget.
köszi -
Apollo17hu
őstag
válasz
laracroft #2001 üzenetére
Nem ismerem a MySQL szintaktikát, de úgy lehetne, hogy rászűrsz name = 'Hát Izsák' -ra, a kapott rekordok mellé pedig számlálót képzel analitikus függvénnyel [rank(), rownum() stb.] a datetime mező csökkenő sorrendje szerint. Ha ez kész, akkor a számláló 1-es és 2-es értékét tartod meg, ezt a két dátumot kell kivonnod egymásból (előbbiből az utóbbit).
-
laracroft
senior tag
Sziasztok,
van egy ILYEN táblám.
Hogyan tudnám megtudni Hát Izsák utolsó 2 bejelentkezése között eltelt időt?Előre is kösz a válaszokat
Új hozzászólás Aktív témák
Hirdetés
- R_volution médialejátszók
- Formula-1
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Azonnali VGA-s kérdések órája
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Vicces képek
- Mobil flották
- iRacing.com - a legélethűbb -online- autós szimulátor bajnokság
- További aktív témák...
- EVGA SuperNOVA 750W GT 80 Plus Gold full moduláris tápegység / 53 hónap Alza.hu garancia
- Surface Laptop 4 Touch 13.5 Retina Ryzen7 4980U 4.4Ghz 16GB 512GB Radeon RX Vega8 Win11 Pro Garancia
- Gigabyte AORUS B550I PRO AX ITX Rev 1.2 / Beszámítás OK!
- HP 15 Zbook Studio G8 FHD IPS i7-11850H vPro 32GB 512GB SSD Nvidia A2000 Studio Win11 Pro Garancia
- Dell 14 Latitude 7420 FHD IPS i7-1185G7 4.8Ghz 16GB 512GB SSD Intel Iris XE Win11 Pro Garancia
- Csere-Beszámítás!AMD Asztali számítógép PC Játékra! R5 5600/ RX 6700XT 12GB / 16GB DDR4 / 500GB SSD
- Asus E510M 128GB SSD, 4GB RAM, 1 Év Garanciával
- Bomba ár! Dell Inspiron 5405 - Ryzen5 4500U I 8GB I 256SSD I 14" FHD I HDMI I Cam I W11 I Garancia!
- Csere- Beszámítás! Asus Rog Strix B550-F Gaming Wi-Fi II Alaplap
- ÁRGARANCIA! Épített KomPhone i7 14700KF 32/64GB RAM RTX 5090 32GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest