Keresés

Részletes keresés

kisspepe Creative Commons License 2013.08.08 0 0 1949

Kösz, észre sem vettem, hogy a phpMyAdmin által írt SQL-ben más aposzrof van, így már működik.

Előzmény: crockl (1948)
crockl Creative Commons License 2013.08.08 0 0 1948

A te sript-edbe ' van és nem `

Előzmény: kisspepe (1947)
kisspepe Creative Commons License 2013.08.08 0 0 1947

Ja és azt lehagytam, hogy a phpMyAdmin ezt a beállítást ezzel az SQL parancsal hajtja végre, de a scriptbe ez sem működik valamiért:

 

GRANT ALL PRIVILEGES ON `papi_%` . * TO 'papi'@'localhost' WITH GRANT OPTION ;

Előzmény: crockl (1945)
kisspepe Creative Commons License 2013.08.08 0 0 1946

Lehet rosszul fogalmaztam meg nem tudom.

 

Abból indultam ki, hogy phpMyAdmin-ban a felhasználóhoz meg lehet adni, adatbázis specifikus jogoknál, a következőt:

 

Jogok hozzáadása a következő adatbázison: papi_%

 

Majd ehhez megadom a full jogot, értem ez alatt kipipálom az összes jogot.

 

Ezután a papi felhasználó létrehozhat bármilyen papi_-al kezdődő adatbázist, amire full joga lesz, de más előtagú adatbázist nem tud létrehozni és nem is fér hozzá.

 

Ezt szeretném én megadni parancssorból, vagyis scriptből, hogy amikor létre kell hozni 20-30 felhasználót, akkor ne egyessével keljen mindenkinek megadnom ezt a beállítást. 

Előzmény: crockl (1945)
crockl Creative Commons License 2013.08.07 0 0 1945

olyan nincs, hogy a jovore majd letrehozhatja :) Tehat papi_% az bukta. Amugy, ha tud letrehozni db-t a papi, akkor az az ove is lesz. Ergo miert kellene meg kulon grantolni? Ha nem a papi hozza letre, akkor meg a create db grantold a db-hez a jogokat. Nemletezo db-hez nem letezhet jog adas sem.

Előzmény: kisspepe (1944)
kisspepe Creative Commons License 2013.08.07 0 0 1944

Sziasztok!

Bash script segítségével szeretnék csoportosan létrehozni MySQL felhasználókat. Valamint a felhasználóknak full jogot adni minden felhasználónév_-al kezdődő táblázatra, amit létrehoznak.
Tehát pl. jakab felhasználó létrehozhatja a jakab_drupal, jakab_joomla stb. adatbázist és arra full joga is lenne.

 

A kód a következő:


Q1="CREATE USER '$username'@'$databaseLocation' IDENTIFIED BY '$password';"
Q2="GRANT USAGE ON *.* TO '$username'@'$databaseLocation' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;"
Q3="GRANT ALL PRIVILEGES ON '${username}_%'.* TO '$username'@'$databaseLocation';"
Q4="FLUSH PRIVILEGES;"

 

SQL="${Q1}${Q2}${Q3}${Q4}"

 

'$MYSQL -u"$databaseUser" -p"$databasePassword" -e "$SQL"'

 

A felhasználókat létre hozza, azzal nincs gond. A probléma a Q3-as sorral van:

Q3="GRANT ALL PRIVILEGES ON '${username}_%'.* TO '$username'@'$databaseLocation';"

 

Ezt valamiért nem szereti a MySQL, és sajnos nem jöttem rá miért. Mi lehet a probléma vele?

 

A hibaüzenet:
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''papi_%'.* TO 'papi'@'localhost'' at line 1

 

A kész SQL parancs, amit átad a script a MySQL-nek:

CREATE USER 'jakab'@'localhost' IDENTIFIED BY '123456';
GRANT USAGE ON *.* TO 'jakab@'localhost' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
GRANT ALL PRIVILEGES ON 'papi_%'.* TO 'jakab'@'localhost';
FLUSH PRIVILEGES;

Törölt nick Creative Commons License 2013.06.24 0 0 1943

Sziasztok! 

Lehet nem a legjobb helyre írok, de hátha tudtok segíteni.

Adnék egy fizetős sqlite3 munkát.

Adott egy Skype-os main.db file.

A benne lévő törölt üzeneteket kellene újra olvashatóvá tenni, dátummal és hogy ki írta kinek.

A total commander nézökéjével, utf8 ban, nehezen, de lehet látni az üzeneteket.

Sqlite szerkesztőkkel egyébként már nem látszanak, mert törölve lettek.

A file Kb. 15MB

Aki tud segíteni vagy tud rá megoldást, programozót, az legyen szíves írjon.

Laja73 Creative Commons License 2013.05.20 0 0 1942
Ezen még gondolkodom
Előzmény: NevemTeve (1941)
NevemTeve Creative Commons License 2013.05.17 0 0 1941

(Én is néha megfogom a szöget, oszt addig csapkodom vele a kalapácsot, míg bele nem megy a falba...)

Laja73 Creative Commons License 2013.05.17 0 0 1940

Jaja mivel a cégek külön táblában vannak, könnyű betenni őket egy tömbbe, és akkor

 

$q = "SELECT  honap";

 

for i < sizeof(ceg[])

 

$q .= ", SUM(CASE WHEN ceg='" . $ceg[i] . "' THEN db ELSE 0 END)";

 

end for

 

$q .= " FROM rendelesek GROUP BY honap ORDER BY honap";

Előzmény: crockl (1939)
crockl Creative Commons License 2013.05.16 0 0 1939

ha veges szamu a cegek szama, es tetszik, hogy ennyit beirsz, akkor jo. Mysql sok lehetoseg nincs ezen a teren, sql tekinteteben, de tarolt eljarast mar irhatsz mysql eseten is, es ott megoldhatod, hogy igy add vissza. Mondjuk ha gyakrabban valtoznak a cegek ,mintsem kenyelmes lenne mindig ujra irogatni a kodot hozza, vagy csak mert dinamikusan akarod megoldani :)

Előzmény: Laja73 (1938)
Laja73 Creative Commons License 2013.05.16 0 0 1938

Igazából csak "szakmai szempontból" izgat a dolog. Minden felmerülő problémára van MySQL parancs, már csak egybe kéne pofozni...

Ha van kedve másnak isk eljátszani vele, kicsit konkrétabban: cégek rendelései egyetlen bizonyos termékből, három oszlop: honap, cegdb

A cégek száma véges (legyen 3), természetesen a hónapoké is, de egy cég egy hónapban tetszőleges alkalommal rendelhet, és tetszőleges darabszámot.

 

Eredménynek egy egyszerű kétdimenziós táblázatot szeretnék, ahol:

1) a sorok a hónapok

2) az oszlopok a cégek,

3) a táblázat celláit a rendelések összesítése adja, pld CEG2 májusban 17 db-ot rendelt (most hogy egyszer 18-et, vagy 3-szor 6-ot, az lényegtelen)

 

 

GROUP BY honap segítségével nagyon egyszerű az első, de így minden hónapnak 3 sora lesz, 1-1 céggel...hopp, most asszem találtam valamit, talán ez lesz a jó:

 

SELECT  honap, SUM(CASE WHEN ceg="ceg1" THEN db ELSE 0 END) AS ceg1_db, SUM(CASE WHEN ceg = "ceg2" THEN db ELSE 0 END)  AS ceg2_db, SUM(CASE WHEN ceg="ceg3" THEN db ELSE 0 END) AS ceg3_db FROM rendelesek GROUP BY honap ORDER BY honap

 

Így ránézésre pont azt csinálja ami nekem kell, hogy a result minden sora az oszlopok sorrendjében tartalmazza a kívánt adatot. Na ki is próbálom. Basszus hát csak nem csalódok a MySQL-ben, tud ez mindent :)

A tökéletes akkor volna, ha nem kéne megadni a feltételben kézzel az értéket, hanem "kinyerné saját magából"...na jó ez tán már túlzás.

 

Laja73 Creative Commons License 2013.05.16 0 0 1937

Szerencsére nem, van terem alakítgatni.

Előzmény: NevemTeve (1936)
NevemTeve Creative Commons License 2013.05.15 0 0 1936

A végfelhasználó közvetlenül MySql SELECT-et futtat? Mert ha nem, akkor van valamilyen host-nyelv (pl C), amiben olyan táblázatot csinálhatsz, amilyen kell.

Előzmény: Laja73 (1935)
Laja73 Creative Commons License 2013.05.15 0 0 1935

Szervusztok! 

Ez lehet, hogy olyan kérdés, mint egy pár debrecenit kérni a Burger Kingben, de azért felteszem (hosszú volt a nap, nem tudok gondolkodni). 

 

Szóval egy multilpe GROUP BY szerű feladat áll előttem, és ez a problémám, hogy itt ugye alapesetben a sorok lehetséges száma az előfordulások szorzata, tehát ha a oszlop (hónap) a táblázatban kétféle értéket vesz fel, b oszlop (cégnevek) meg hármat, akkor GROUP BY a,b egy hatsoros result (feltéve, hogy minden eset előfordul). Persze hogy az egésznek értelme legyen, van egy c oszlop is, ennek a SUM értéke tölti majd fel a táblázatot.

 

De...nekem olyan táblázat kell, ahol minden hónap (a oszlop) egy sor, az oszlopok pedig cégnevek (b oszlop). Anélkül, hogy a PHP-ben játszanék, lehetséges a kiíratás egyetlen elegáns MySQL lekérdezéssel? Ahol a result két sor.

 

Jelenleg úgy oldom meg, hogy ahány előfordulása van a-nak, annyiszor futattom a query-t, és csak szimplán b-re csoportosítok.

DkGrinder Creative Commons License 2013.05.03 0 0 1934

Köszönom !

Előzmény: crockl (1933)
crockl Creative Commons License 2013.05.03 0 0 1933

SELECT * FROM ketkalk where `1. oszlop`= '001' amennyiben valóban az az oszlopod neve, elég beteg módon, hogy "1. oszlop".

Előzmény: DkGrinder (1931)
NevemTeve Creative Commons License 2013.05.02 0 0 1932

Szerintem abból,  hogy a tábla neve 'ketkalk' már evidens, hogy

- mik a tábla sorai

- mik a tábla oszlopai

- mit akarsz kiolvasni a táblából

De ha mégsem, akkor közönséges telepátiával meg lehet állapítani.

DkGrinder Creative Commons License 2013.05.01 0 0 1931

Köszönöm!

Kicsit részleteznéd, tök analfabéta vagyok  még :-S nekem kb ennyi  van meg :-(

 

 

<?php

 

$kapcsolat = mysql_connect("127.0.0.1", "xxxxx", "yyyy");
if (!$kapcsolat) die("Nem sikerült kapcsolódni az adatbázishoz!");
mysql_select_db("ketvillbt", $kapcsolat) or die("Nem sikerült kiválasztani az adatbázist!");
$bbbb = mysql_query("SELECT * FROM ketkalk");

 

HELP!

 

 


mysql_close($kapcsolat);

?>

Előzmény: crockl (1930)
crockl Creative Commons License 2013.04.30 0 0 1930

where oszlop1 = '001'

Előzmény: DkGrinder (1929)
DkGrinder Creative Commons License 2013.04.27 0 0 1929

Sziasztok!

 

Gondolom elég lerágott csont, de elég terjedelmes ez a topic, hogy megkeressem

 

:-S Nem értek a MSQL-hez de csak egy pici dologra lenne szükségem. 

Van egy adatbázisom egy szerveren mondjuk van benne 5 oszlop legyen a neve? 1. oszlop,  2.oszlop, 3.oszlop, 4. oszlop, 5.oszlop és van 5 sorom. megszámozva 001, 002, 003, 004, 005, szeretném lekérdezni csak egy sorát, és kiírattatni, hogy tudom ezt megoldani.

Köszönöm!

Phnx Creative Commons License 2013.03.21 0 0 1928

Na úgy tűnik, hogy megoldódott a probléma.

 

Igazából újra lett telepítve a Linux és eltűnt a hiba. Egyszerűen nem értem, hogy mi volt. Igaz, először kicsit kacifántosan volt telepítve, véletlenül két féle SQL szerver is felkerült, talán azok kavarodtak össze, de akkor sem értem, miért volt az, hogy 4 gépig még jó volt a kapcsolat, 4 gép felett meg már nem tudott csatlakozni, és a korábban csatlakozott 4 gépen is elszállt a kapcsolat...

 

Na mindegy, remélem most így marad :)

 

Előzmény: Phnx (1927)
Phnx Creative Commons License 2013.03.20 0 0 1927

Sziasztok!

 

Egy nagyob bosszantó problémám van, hátha valaki tud segíteni.

 

Van egy kis programunk, ami egy mysql szerver által kér le adatokat egy adatbázisból.

 

Ez a program több (konkrétan 6db) gépen fut egyszerre.

 

Eddig, teszt időszak alatt egy XP volt a szervergépen, apache-php-mysql-el (XAMMP).

 

Most csináltunk egy Linuxos szervert hozzá, mysql-server-rel, és azóta valami nagyon nem oké.

 

Úgy néz ki a dolog, mintha egyszerre csak 4db számítógépről engednél a lekérdezéseket. Tehát, amíg csak 4 gépen fut a program, addig semmi gond. Amint elindítom az 5., 6. gépen, már nem tud csatlakozni, "Lost connection - waiting for initial communication packet" hibával elszáll (hiba kód: 2013).

 

Ami NAGYON érdekes, hogy amikor az 5., 6 gépen próbálom, a többi, addig jól működő 4 gépen is elszáll a dolog, tehát nem tudnak lekérdezni a szerverről már azok sem, DE csak pár másodpercig vagy max. 1-2 percig, aztán megint jó. Őrjítő a dolog.

 

Mi van vajon rosszul konfigurálva? A mysql szerverünk? Vagy a Linuxon valami egyéb?

 

Néztem már mindenféle logot, beállítottam mysql logolást, mindent, de sehol semmi nasználható infó.

 

Előre is nagyon köszönök minden infót, ötletet, tanácsot.

 

tökösmákosrétes Creative Commons License 2013.02.16 0 0 1926

Bár elvileg, ha így akarod megoldani, akkor valahogy meg kellene különböztetni a két esetet.

1. Fel van már töltve a kép.
2. Még nincs ilyen kép, fel kell tölteni.

 

Első esetben jó lenne az UPDATE, de kérdés, hogy hogy jön létre először? :)

Második esetben nem tudsz UPDATELNI, csak az INSERT lenne jó.


Sajnos a Joomla belső lelkivilágát, kötöttségeit nem ismerem.


Előzmény: tökösmákosrétes (1925)
tökösmákosrétes Creative Commons License 2013.02.16 0 0 1925

A feltöltéshez valózínűleg nem UPDATE-re, hanem iNSERT-re lesz szükséged.

INSERT jos_vm_productSET `product_thumb_image`={resized/szimering_120x15_511526ebe036f_90x90.jpg}, `product_full_image`={szimering_120x15_511526ebe2c31.jpg}

Gyanítom, hogy ez két kölön művelet. Feltöltésnél ezt kell használni. Listázásnál, az előző SELECt... -et.


 

Előzmény: Teosz (1924)
Teosz Creative Commons License 2013.02.16 0 0 1924

Hát mezőket akarok feltölteni. Írtam korábban, hogy egy csomó terméknek ugyanazt a képet adnám, és szeretném feltölteni a kép mezőt, az adott kép elárási útjával...

Előzmény: tökösmákosrétes (1923)
tökösmákosrétes Creative Commons License 2013.02.15 0 0 1923

Akkor az select jó. Mit akarsz még elérni?

Előzmény: Teosz (1922)
Teosz Creative Commons License 2013.02.15 0 0 1922

Ha nem írok UPDATE-t, akkor kiválasztja amit kell, tehát azokat a termékeket, amelyeknek a nevében szerepel a szimering szó. A hiba az UPDATE-ben lesz, de próbáltam már INSERT-et és REPLACE-t is, szintén doksi alapján, de valamiért nem akarja tenni egyik sem a dolgát. :(

Előzmény: tökösmákosrétes (1919)
tökösmákosrétes Creative Commons License 2013.02.14 0 0 1921

A TRUNCATE automatikusan megoldja. Használd azt törléshez és nem kell állítgatnod az AUTO_INCREMENT mezőket.

Előzmény: teerted (1913)
tökösmákosrétes Creative Commons License 2013.02.14 0 0 1920

A SUM() lesz a Te barátod! :)

Előzmény: szjozsi79 (1908)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!