aplikace v php a MySql

Dracula 007 dracula007 na atlas.cz
Pátek Leden 26 16:39:38 CET 2007


>>> V adresari s MySql soubory mam cast souboru s velkymi pismeny v pripone 
>>> MYD a MYI,
>>> cast s malymi myd a myi. Puvodne byly vsechny pripony velkymi pismeny a 
>>> aplikace nebezela.
>>> Pak jsem usoudil, ze maji byt pripony taky malymi a prejmenoval to.
> 
>>> Pritom volani pripon jsem v kodu nikde nenasel, odkud se mi to tam bere 
>>> ???????
>>> (On je tedy ten kod dost neprehledny, tak se v tom neda moc vyznat) Muze
>>> to byt ulozene nekde v databazi?

Ja tedy nevim, ale hrabat se rucne v adresarich databaze bez dostatecne
hluboke znalosti jejich 'vnitrnosti' je docela odvaha (a z formulace
'pak jsem usoudil ze ...' se domnivam ze je to i vas pripad). Formulace
'aplikace nebezela' take muze znamenat milion ruznych veci. Totiz ona i
ta priblbla MySQL ma jednak datove soubory a soucasne interni katalogy
(jako temer kazdy RDBMS), a tim ze ji pod rukama soubory prejmenujete ji
naprosto zmatete.

BTW vypnul jste alespon tu databazi kdyz jste to prejmenovaval?

Kazdopadne ale myslim ze problem bude v tom ze aplikace je napsana
'windowsoidne' cili bez ohledu na velikost pismen v nazvech tabulek
ktere se ale MySQL prekladaji na jmena souboru ve kterych jsou data
ulozena, cili tabulka je vytvorena napriklad jako

  CREATE TABLE Test ( ... );

ale v selectech je 'SELECT * FROM TEST' nebo tak neco. To funguje pod
windows ale nikoliv v Linuxu ktery je case-sensitive, tedy alespon co se
nazvu souboru tyka. Cili linux neuspesne hleda soubor nazvem 'TEST.MYI'
a 'TEST.MYD' ale soubory se ve skutecnosti jmenuji 'Test.MYD' a
'Test.MYI' (coz mimo jine napovida ze vase domnenka o malych pismenech v
koncovkach byla zrejme mylna).

Cili pokud je to v cele aplikaci v SQL dotazech jednim zpusobem, muzete
tu tabulku prejmenovat tak aby velikosti pismen odpovidaly, napriklad

  ALTER TABLE Test RENAME TO TEST;

Pokud je to v SQL ruzne namixovane - jednou malymi, jednou velkymi,
budete to asi muset prepsat a nazvy tabulek sjednotit. Ale to vam tedy
nezavidim, zejmena pokud je kod neprehledny jak sam pisete.

Budiz vam to ponaucenim ze vyvijet a testovat se ma na platforme na
ktere to potom pobezi, jinak je potreba davat pozor na specifika dane
platformy.

t.v.


Další informace o konferenci Linux