Hirdetés

2024. június 10., hétfő

Gyorskeresés

Útvonal

Fórumok  »  Szoftverfejlesztés  »  MySQL topic

Hozzászólások

(#401) vakondka válasza meone (#400) üzenetére


vakondka
őstag

localhost-on általában a felhasználónév:root és nincs jelszó.

https://toptarget.hu - Online Marketing Ügynökség

(#402) meone válasza vakondka (#401) üzenetére


meone
tag

Köszi szépen.
Időközben meg találtam én is és kijavítotottam most már működik szépen.
Köszi még egyszer.

Elnézést kérek mindenkitől a helyes írásom ért :)

(#403) vancha2


vancha2
aktív tag

Sziasztok

Van két UTF-8 kódolású php fájlom. Az egyikben egy űrlapon beviszek adatokat az adatbázisba, a másikkal kiíratom az adatokat. Ez tökéletesen működik, viszont ha megnézem a bevitt adatokat phpMyAdmin-ban, akkor az ékezetes karakterek helyett mindenféle vacak jelenik meg. Olyan mintha egy UTF-8 kódolású szöveget ISO-8859-2 kódolással néznénk meg. Ezzel az a probléma, hogy ha az adatbázisban módosítani szeretnék egy rekordot, akkor nem írhatom be simán az ékezetes betűket, ami nagyon zavaró.
Ennek mi az oka? Van valami speciális beállítás erre? (ha számít, akkor az extra.hu szerverén van az oldal)

A válaszokat előre is köszi!

(#404) vancha2


vancha2
aktív tag

Hali!

Újabb kérdés merült fel bennem: Az adatbázis sorait így iratom ki:

$db = mysql_query("select * from tabla order by id");
while ($sor = mysql_fetch_array($db)) {
$sor[szoveg]
}

Ez az id alapján teszi sorba az adatokat. Hogy tudnám azt megcsinálni, hogy az 1-es id-jú sort mindig hagyja ki? Tehát hogy a 2-estől kezdje, és úgy menjen tovább.

Előre is köszi!

(#405) cucka válasza vancha2 (#404) üzenetére


cucka
addikt

select * from tabla where id!=1 order by id

(#406) vancha2 válasza cucka (#405) üzenetére


vancha2
aktív tag

Köszi!

A #403-ra nem tudja valaki a választ?

(#407) cucka válasza vancha2 (#403) üzenetére


cucka
addikt

az mindegy, hogy milyen kódolású a php file-od. ami számít:
- az adatok, amiket beviszel, milyen kódolásúak
- a mysql adatbázis kapcsolat milyen kódolású (set names parancsot ki kell adni a mysql-nek kapcsolódás után)
- maga az adatbázis (illetve a táblák) milyen karakterkódolásúak.

ezeket kéne lecsekkolni.

(#408) vancha2 válasza cucka (#407) üzenetére


vancha2
aktív tag

A SET NAMES-et nem adtam meg. Valahogy így nézzen ki:

if(!@mysql_select_db($sqldatabase)) {
print "Nem lehet elérni az adatbázist. A hiba oka: " . mysql_error();
exit;
}
mysql_query("set names 'utf-8'");

[ Szerkesztve ]

(#409) vancha2 válasza vancha2 (#408) üzenetére


vancha2
aktív tag

Így már jó:
mysql_query("set names 'utf8'");

Köszi!

(#410) alitak


alitak
senior tag

Van egy táblám, amiből 3 egymás utáni sort kéne kiválasztani úgy, hogy a középsőnek kapom meg az id-jét. Van erre parancs, vagy vmi? Merthogy nem biztos, hogy ha pl. megkapom, hogy key=5, akkor a másik két sornak az azonosítója 4/6.

Nec arte, nec marte | használt hardverek jó áron: http://goo.gl/lUwLkw

(#411) Jester01 válasza alitak (#410) üzenetére


Jester01
veterán

Én ezt csak beágyazott select-tel tudtam megcsinálni, ilyesképp:

select * from t where k in (5, (select max(k) from t where k < 5), (select min(k) from t where k > 5));

Jester

(#412) Louloudaki


Louloudaki
aktív tag

lehet kicsit idióta kérdés, de ha tudom, hogy például x darabot keresek egy lekérdezés során, akkor érdemes-e ezt limitként beállítani? pl tudom hogy egy táblában 10db olyan hír van, ami 2006-os, és hosszú a tábla: select * from tábla where dátum=2006 limit 10, akkor ha megvan a 10db, nem pörög tovább a többi millió rekordon és gyorsabb a lekérdezés elvileg? a másik, hogy ha id=20 keresek, akkor végigpörög-e az összes rekord, vagy milvel az id primary key és csak egy 20as id-jú tétel van, így a keresés leáll ha ez megvan?

(#413) cucka válasza Louloudaki (#412) üzenetére


cucka
addikt

a) igen, limit-el elvileg gyorsabb.
b) ha az id primary key, akkor automatikusan készül rá index is, ami kb. egy keresőfához hasonlít. (pontosan nem tudom, hogyan van megoldva, de valami hasonló lehet). ez azért jó, mert a keresés műveletigénye nem lineáris hanem logaritmikus, tehát nem pörög végig semmi.

(#414) Louloudaki válasza cucka (#413) üzenetére


Louloudaki
aktív tag

oké, köszi!

(#415) fLeSs


fLeSs
nagyúr

Üdv.
Szeretnék kérni egy kis segítséget.
A MySQL benchmarkot [link] bele szeretném tenni a processzortesztekbe itt a PH-n.
Annyit tudni kell, hogy én abszolút nem értek a MySQL-hez és a perlhez, csak és a kizárólag azért kezdtem el vele most foglalkozni, hogy a procitesztekbe a benchmarkot beletehessem.
A leírás szerint feltelepítettem a mysql-5.0.45-win32-t, majd az ActiveState Perl-t (ActivePerl-5.8.8.822-MSWin32-x86-280952.msi), a ppm-mel sikerült installálni a DBI-t és a DBD-mysql-t ([link]).
Viszont a benchmark futtatása az vhogy nem akar összejönni.
A parancssor vhogy így néz ki

perl run-all-tests server=MySQL

És a hiba pedig:

Got error: 'Access denied for user 'ODBC'@'localhost' (using password: NO)' when
connecting to DBI:mysql:database=test;host=localhost with user: '' password: ''

Ha usernévnek megadom a root-ot, akkor az ODBC helyére root kerül. Ha passwordnek megadom a kódot, amit a mysql konfignál pötyögtem be, akkor sem jó. A lényeg, hogy sehogysem jó.

perl run-all-tests server=mysql --user=root --password='xyz' --log

Ha megadom neki a gépem IP-jét amit a hálókártyánál állítottam be, akkor ez fogad:

D:\source\sql-bench>perl run-all-tests server=mysql --host=192.168.0.11:3306 --u
ser=root --password='1234' --log
Got error: 'Host 'FLESSHOME' is not allowed to connect to this MySQL server' whe
n connecting to DBI:mysql:database=test;host=192.168.0.11:3306 with user: 'root'
password: ''1234''

Mi a probléma? Előre is köszi.

"I press keys on a keyboard all day and click a mouse in front of a glowing rectangle. Somehow that turns into food and shelter."

(#416) fLeSs


fLeSs
nagyúr

Kicsit továbbjutottam a dologban, kiderült, hogy nem volt elindítva a MySQL service.
Szenvedések után sikerült ez is, de most meg ez a hibaüzenet:

D:\source\sql-bench>perl run-all-tests --server=mysql --user=root --password=123
4
Got error: 'Client does not support authentication protocol requested by server;
consider upgrading MySQL client' when connecting to DBI:mysql:database=test;hos
t=localhost with user: 'root' password: '1234'

D:\source\sql-bench>

Honnan szerezzek hitelesítési protokollt? :D

"I press keys on a keyboard all day and click a mouse in front of a glowing rectangle. Somehow that turns into food and shelter."

(#417) fLeSs válasza fLeSs (#416) üzenetére


fLeSs
nagyúr

bakker, sikerült megcsinálni. :D

"I press keys on a keyboard all day and click a mouse in front of a glowing rectangle. Somehow that turns into food and shelter."

(#418) fLeSs


fLeSs
nagyúr

Kéne egy kis help.
Tudna vki nekem írni egy my.ini-t, ami úgy van optimalizálva, hogy 2 GB a memória mérete, 2 vagy 4magos a proci és hogy minél inkább a procit terhelje mint a vinyót?
A szerver beállítása: transactional database only/online transaction processing.
De ha mondtok jobbat ami CPU-terhelésre jobb, akkor azt megköszönöm.

Egy ilyenhez mit szóltok? Ezzel negyedére csökkentettem a benchmark lefutási idejét az alapbeállításokhoz képest (vagyis négyszeresére gyorsult az elérés)

[mysqld]
#Path to installation directory. All paths are usually resolved relative to this.
basedir="C:\Program Files\MySQL\MySQL Server 5.0\"
#Path to the database root
datadir="C:\Program Files\MySQL\MySQL Server 5.0\data\"
port = 3306
skip-locking
max_connections = 500
key_buffer_size = 512M
max_allowed_packet = 16M
table_cache = 2048
sort_buffer_size = 16M
read_buffer_size = 8M
myisam_sort_buffer_size = 16M
thread_cache_size = 16M
query_cache_size = 16M
thread_concurrency = 8
join_buffer_size = 8M
memlock
bulk_insert_buffer_size = 64M

[mysql]
no-auto-rehash

[isamchk]
key_buffer_size = 128M
sort_buffer_size = 128M
read_buffer_size = 32M
write_buffer_size= 32M

[myisamchk]
key_buffer_size = 128M
sort_buffer_size = 128M
read_buffer_size = 32M
write_buffer_size = 32M

[ Szerkesztve ]

"I press keys on a keyboard all day and click a mouse in front of a glowing rectangle. Somehow that turns into food and shelter."

(#419) fLeSs


fLeSs
nagyúr

Lehet, hogy hülye lesz a kérdésem/kérésem, de nem tudnátok nekem mutatni egy letölthető ingyenes "próba-adatbázist", amin lehetne tesztelni? Amiket találtam azok nagyon picikék.
Nekem az is megfelelne, ha vki adna egyet :D, a benne lévő adatok nem érdekelnek, csak MySQL bench, AS3AP és TPC-C teszteléshez kéne.

[ Szerkesztve ]

"I press keys on a keyboard all day and click a mouse in front of a glowing rectangle. Somehow that turns into food and shelter."

(#420) Lortech válasza fLeSs (#419) üzenetére


Lortech
addikt

Van egy régebbi mintaadatbázis mysql-hez ( world ), és egy újabb, a Sakila.

De nem sokból tart akármekkora adatbázist tetszőleges adattal teletömni.

Még az előzőhöz: nem tudom, a tesztben van-e innodb teszt, de ha igen, akkor nem árt annak is a beállításait belőni, legalább az innodb_buffer_pool_size -t.

[ Szerkesztve ]

Thank you to god for making me an atheist

(#421) fLeSs válasza Lortech (#420) üzenetére


fLeSs
nagyúr

Ezeket megtaláltam én is.
Hogyan töltsem fel gyorsan?

innodb: egyelőre azt se tom, hogy mi az. :D

[ Szerkesztve ]

"I press keys on a keyboard all day and click a mouse in front of a glowing rectangle. Somehow that turns into food and shelter."

(#422) Lortech válasza fLeSs (#421) üzenetére


Lortech
addikt

Konzolból pl.
>mysql -u user -p

mysql >create database sakila;
mysql >create database world;

mysql >source sakila-schema.sql
mysql >source sakila-data.sql
mysql >source world.sql

Ahol a source utáni fájl a mysql konzol kliens helyétől (mysql/bin) van megadva (itt relatívan), tehát a fenti akkor működik, ha binbe berakod a fájlokat.

Az innodb a mysql-ben használt másik nagy adatbázistípus a myisam mellett.

[ Szerkesztve ]

Thank you to god for making me an atheist

(#423) fLeSs válasza Lortech (#422) üzenetére


fLeSs
nagyúr

Fantasztikus, ezt tegnap már megcsináltam, ez lenne a feltöltés? :D
De ezek pici adatbázisok, nem?

"I press keys on a keyboard all day and click a mouse in front of a glowing rectangle. Somehow that turns into food and shelter."

(#424) Lortech válasza fLeSs (#423) üzenetére


Lortech
addikt

Ha már egyszer beimportáltad, mit akartál még rajta feltölteni?

Relatív. Nem számítanak nagynak. De tesztelésre jók, ezekre is lehet kilométeres lekérdezést írni.

Ha írsz paramétereket, este felé ha hazaérek , generálok neked adatbázist véletlen szeméttel feltöltve.
Adatbázis: - táblák száma : - mezők száma - egyes mezők típusa (szöveg, egész szám stb), mező mérete (pl. 10 karakteres szöveg) - táblán belül a sorok száma.
Esetleg még a tartalom tulajdonságai, ha kell ilyen.
pl. tábla1 (szoveg(200),szoveg(1000), szam(20)) 500e sor

Ez már elég méretes. De nem tudom milyen kell neked és milyen műveletet akarsz rajta végezni.

[ Szerkesztve ]

Thank you to god for making me an atheist

(#425) fLeSs válasza Lortech (#424) üzenetére


fLeSs
nagyúr

Izé.
Mindössze kéne egy adatbázis, amin le tudom futtatni a TPC-C, Scalable Hardware és AS3AP benchmarkokat. Gondolom ismered őket. Ha nem, küldök linkeket. Írok privit.

"I press keys on a keyboard all day and click a mouse in front of a glowing rectangle. Somehow that turns into food and shelter."

(#426) Louloudaki


Louloudaki
aktív tag

állás pályázathoz kiküldtek tesztfeladatot, amiben azt kérik, hogy min. mysql5.0-ra csináljam a lekérdezéseket, de egy sima tábla kell csak a feladathoz, tehát van egy hír tábla, amiben van dátum, cím, leírás. feladat ennek az adminolása, egyszerű update, insert meg delete lekérdezések kellenek hozzá, ezek meg 4ben meg 5ben is ugyanúgy néznek ki, hogy select mit honnan where mondjuk dátum<2007. nem? jól tudom, hogy 4 és 5 között a joinolásban van főleg különbség, nem az ilyen alap dolgokban?

(#427) Louloudaki válasza Louloudaki (#426) üzenetére


Louloudaki
aktív tag

upp

(#428) cucka válasza Louloudaki (#426) üzenetére


cucka
addikt

igen, egyszerű select, insert, update, delete ugyanúgy működik 4-es és 5-ös alatt is.

(#429) Louloudaki válasza cucka (#428) üzenetére


Louloudaki
aktív tag

ok köszi. akkor jó a feladatkiírás. :D

(#430) vancha2


vancha2
aktív tag

Üdv

PHP-val szeretném megtudni a MySQL tábla egyik mezőjének tartalmának a hosszát. Ezt hogy tudom megcsinálni? :F

(#431) dany27


dany27
őstag

sziasztok!

Felraktam apache+php+mysql páost és mellé még a phpmyadmint de az a gondom h nem tudok logoutolni mert sehol sincs ilyen gomb illetve felraktam még a mysql administratort de nem tudok csatlakozni mert vmi hibát dob ki!

(#432) cucka válasza dany27 (#431) üzenetére


cucka
addikt

phpmyadmin-ban a bal hasáb tetején van egy zöld exit gomb, azt kell megnyomni, hogy logout-oljon.

(#433) Korcsii


Korcsii
őstag

azt meg lehet oldani, hogy egy táblában két AUTO_INCREMENT id legyen egyszerre, ahol az egyik az egy folyamarosan növő (amiből csak egy van), a másik pedig egy csoportonként számláló (több ugyan olyan id is van, de egy csoporton belül csak egy)?

külön külön megy, csak együtt még nem...

előre is kösz :R

(#434) cucka válasza Korcsii (#433) üzenetére


cucka
addikt

trigger-el szerintem meg lehet oldani.

(#435) vancha2


vancha2
aktív tag

Üdv!

A táblámban minden sornál meg van adva egy szám. Ez alapján akarom PHP-val kilistázni a rekordokat. A gondom csak az , hogy úgy rakja sorba őket, hogy nem figyeli a szám hosszát. Pl. az 1000-et kisebbnek veszi, mint a 80-at. Meg lehet azt valahogy oldani, hogy normálisan rakja sorba a rekordokat?

(#436) vancha2 válasza vancha2 (#435) üzenetére


vancha2
aktív tag

Na valaki csak tudja a megoldást a kérdésemre! :O

(#437) Lortech válasza vancha2 (#436) üzenetére


Lortech
addikt

Lehet, hogy tudja valaki, csak elvesztette a fonalat a kérdésnél. :))
A táblában tehát van egy meződ, ami alapján rendezed. Mivel rendezed, php vagy mysql? Szám típusú a mező?

Thank you to god for making me an atheist

(#438) vancha2 válasza Lortech (#437) üzenetére


vancha2
aktív tag

Igen van egy savsz nevű mező, ami alapján rendezem sorba a rekordokat. A típusa FLOAT (tudtommal ez kell a valós számokhoz, INT-el nem tudok csak egész számokat beírni). Ebből a mezőből rendezem sorba az adatokat PHP-vel:

$db = mysql_query("SELECT * FROM szerverek ORDER BY savsz");
while($sor = mysql_fetch_array($db)) {
print($sor["savsz"] . '<br />');
}

Ezek után nem jól rendezi sorba a számokat, pl. az 1000-et azt a 80 elé helyezi. Így már remélem érthetőbb, és tudtok segíteni... :))

(#439) Lortech válasza vancha2 (#438) üzenetére


Lortech
addikt

Nem PHP-val rendezed, hanem MySQL-lel, a PHP-vel csak kiíratod, legalábbis a kód alapján.
Tutituti hogy FLOAT a típusa? Szám típusokat nagyság szerint kell rendeznie az ORDER BY záradéknak. Ha varchar lenne a meződ, akkor működne így.
Vagy esetleg nincs a queryben a savsz ' ' között? Mert akkor lexikografikusan rendez számokat is.

Thank you to god for making me an atheist

(#440) vancha2 válasza Lortech (#439) üzenetére


vancha2
aktív tag

Az az igazság, hogy most ugyanazzal a kóddal működik, mint amit korábban leírtam. A mező típusa is ugyanúgy maradt FLOAT. Fogalmam sincs, higy miért nem működött, a lényeg hogy most működik: Seed-Szerverek.info

A tárhely az Extránál van, lehet, hogy náluk volt valami gubanc, és azért nem működött? :F :F

(#441) VladimirR


VladimirR
nagyúr

Hi!

van egy tablam, par szazezer sorral
meg van egy script, ami ezt frissitgeti:
- uj adatot beszurni
- meglevonel par mezot frissiteni
- egyszerre ugy 5-30 ezer sor
jelenleg ugy oldom meg, hogy select-tel megnezem, szerepel-e mar az adott ertek, s ha igen, frissitem a sorat, egyebkent beszurom
van erre valami jobb modszer? (replace nem jatszik)

Udv: VladimirR

(#442) Lortech válasza VladimirR (#441) üzenetére


Lortech
addikt

Esetleg:
INSERT INTO (...)
ON DUPLICATE KEY UPDATE (...);

szerk: teljesítmény szempontjából passz.

[ Szerkesztve ]

Thank you to god for making me an atheist

(#443) VladimirR válasza Lortech (#442) üzenetére


VladimirR
nagyúr

koszonom, ez pont jo, es nagyjabol 60%-ra ment le a feldolgozasi ido

19k sor eseten 19k sor frissitese a regi es uj modszerrel rendre 37, illetve 20 masodperc
82k sor eseten 19k sor frissitese a regi es uj modszerrel ugyanez

(#444) broni


broni
csendes tag

Vki segítsen rajtam!Meghálálom!(akár fizetek is :D )
Olyan programot kellene írni, amelyik képes adatokat
felvinni MYSQL táblába, valamint a tábla adatait megjeleníti grafikus
képernyőn!Egy egyszerű tábla kéne(név,ország,város,utca).
Állítólag egy pár perc alatt össze lehet dobni egy ilyet, annak aki ért hozzá.
De mivel én nem értek...
A válaszokat privátba várnám!Előre is köszönöm.
És tényleg meghálálom!

(#445) broni


broni
csendes tag

Előző hozzászóláshoz!
Jávába kellene írni a progit!

(#446) tkazmer


tkazmer
addikt

valaki segítene abban, hogy pontosan hogyan is kell használni a foreign key-t? A db designer 4-el készítek éppen adatbázis tervet, és nagyon jól összehoztam a táblákat, valamilyen módon kapcsoltam is őket foreign key-ekkel, de nem tudom, hogy pontosan mit is értem el vele. van ráadásul mindenféle beállítási lehetőség, úgy mint relation kind: 1:1; 1:n; 1:n (non indetifying); n:m; n:m (descendent obj.); és 1:1 (non indentifying). Alapból ezt az 1:1 (non indetifying) típust használom, de hogy miért, azt nem tudom:) ezen kívül be lehet állítani néhány dolgot delete és update eseményekhez. Ezeknél mit lehet érdemes választani? (restrict, cascade, set null, set default és no action van, alapból ez utóbbira állítva)

úgy tervezték, hogy kibirjon egy atomtámadást is. De nekünk komolyabb fegyvereink vannak, mint pl Béla bá, a földmunkagépkezelő

(#447) vipisti válasza tkazmer (#446) üzenetére


vipisti
tag

Először is gondold át az adatmodelledet. Ha pl vannak "mappa" és "polc" egyedeid, azok között n:1 kapcsolat van, mert egy polchoz több mappa tartozhat. (A mappa táblájában lesz egy idegen kulcs, amivel polchoz rendeled a rekordokat.) Ha az egyedkapcsolatokat ilyen formán tisztáztad, akkor állj neki a db építésnek.

Gnothi seauton.

(#448) emre33


emre33
addikt

Sziasztok!

Van egy nagy táblám, két dolog van benne: Egy id, és egy név!

Ebből összesen van 15.000 darab.

Ebből a táblából nagyon gyakran kell select-el lekérdeznem.
Írás szinte sose...

Erre a célra a MYISAM vagy az InnoDB a megfelelő?

Köszi

ASUS B650E-E, AMD Ryzen 9 7900, CORSAIR 64GB DDR5 6000MHz CL30 KIT CMK64GX5M2B6000Z30, ARCTIC COOLING Liquid Freezer II 360

(#449) cucka válasza emre33 (#448) üzenetére


cucka
addikt

InnoDB, különösen abban az esetben, ha párhuzamosan is jöhetnek a kérések (pl. weboldal esetén)

(#450) mephysto


mephysto
csendes tag

Sziasztok! Egy gyors kérdést engedjetek meg :)

Sikeresen telepítettem egy Apache 2.2.9 + PHP 5.2.6 + MySQL 5.0.51b triót, rendben is van, de egy kis bizonytalanság van bennem a PHP és a MySQL összelövésében. Az PHP install.txt-ben az alábbit olvastam:

php_mysql.dll MySQL functions PHP >= 5.0.0, requires libmysql.dll (bundled)
php_mysqli.dll MySQLi functions PHP >= 5.0.0, requires libmysql.dll(libmysqli.dll in PHP <= 5.0.2) (bundled)

A php.ini-ben előszőr a php_mysqli.dll kiterjesztést aktíváltam, de akkor a phpMyAdmin (2.11.7.1) panaszkodik, hogy nem tudta a php_mysql.dll kiterjesztést betölteni. Ugyan akkor viszont működik.

Melyiket célszerű használni és mennyire kell megijednem a MyAdmin sírásától?

MÚKUGGY! :DDD

Útvonal

Fórumok  »  Szoftverfejlesztés  »  MySQL topic
Copyright © 2000-2024 PROHARDVER Informatikai Kft.