Avatar billede avatar2 Nybegynder
11. januar 2003 - 11:25 Der er 7 kommentarer

Tabeller der låser sig selv

Jeg har det problem at 1 af mine tabeller låser sig og giver følgende fejlbesked: cannot open table loghits.myd.

Den forbliver låst indtil jeg f.eks. tømmer den i phpmyadmin.

Ca. 1 gang i timen rydder jeg op i denne tabel og sletter store data mængder samt bruger analyse, optimize på den.

Den bruges på en side som har 20k hits dagligt så det er måske noget select/update der fryser den. Spørgsmålet går egentligt mest på om det er muligt at detekterer at en tabel har låst sig selv så man manuelt evt. kan låse den op eller bare tømme den.

jeg vil lige nævne at det er programmeret i php og der bruges user_abort på den side så en bruger ikke skulle have mulighed for at stoppe scriptet i udførsel.

Evt. gode forslag til hvad der gør at den låser modtages meget gerne
Avatar billede supernewbie Nybegynder
11. januar 2003 - 11:35 #1
Har samme problem og det er lige meget om der kun er 1 bruger på siden.. Ville også gerne høre svaret...
Avatar billede a1a1 Novice
11. januar 2003 - 11:50 #2
jeg har haft et ligende problem, mener det var med version 4.01..

men jeg fandt ud af at det var fordi at jeg havde glemt at lukke nogle recordsets og det var åbentbart nok til at mySQL "gik ned" engang imellem, det havde før kørt på access (med samme kode) uden problemer..

hvis det ikke er det der er problemmet og du vil reparere din tabel kan du (i ASP) gøre noget lignende dette

on error resume next

--- åben database, fetch recordset

if connection.erros.count > 0 then ' hvis der er opstået fejl
strSQL = "repair table <tabelnavn>"
connection.execute(strSQL)
' prøv at fylde recordsettet igen
end if

;o)
Avatar billede morw Nybegynder
11. januar 2003 - 12:08 #3
Kører du selv en LOCK TABLE og bruger du i så fald mysql_pconnect eller mysql_connect i php?
Avatar billede avatar2 Nybegynder
11. januar 2003 - 12:17 #4
Jeg bruger ikke lock table og jeg bruger mysql_connect til databasen.
Avatar billede morw Nybegynder
11. januar 2003 - 12:32 #5
Hvad version & platform?

Hvad output giver SHOW PROCESSLIST når den låser?
Avatar billede avatar2 Nybegynder
11. januar 2003 - 12:39 #6
mysql 3.23.54 på linux

Jeg har ikke lige kontrolleret show processlist, så den må jeg vente med til den låser næste gang og det sker kun 1 gang dagligt og selvfølgelig kun om natten:)

Det lader til at det kan fikses med repair table, men hvordan detektere man at den er gal?
Den hopper ud af scriptet når man f.eks. laver en select på den table så man kan ikke vel ikke bruge mysql_error.
Avatar billede morw Nybegynder
11. januar 2003 - 13:31 #7
Det er jo ikke alm. opførsel og burde ikke kunne ske. Prøv at spørge på den rigtige mysql maillingliste
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester