Avatar billede tk421 Nybegynder
08. august 2006 - 15:14 Der er 9 kommentarer

MySQL DB vil ikke restores korrekt. (PHPBB issue)

Spørgsmålet er c/p'et fra phpbb2.dk forummet.
Orker ikke at skrive det igen ;-)

Det er meget vigtigt for mig at få det op og køre da det er vores forenings forum.
Jeg har selv prøvet alt nu, så jeg synes det er en ultra svær opgave og den giver naturligvis 200 Point til det kloge hovede som hjælper mig med at løse opgaven.

Og meget gerne på email:
thomas.kristensen.81@gmail.com

Hej folkens.
Jeg har kigget de fleste af emnerne igennem for at se om der er nogle som er kommet ud for det samme problem som mig.
Det lader det "desværre" ikke til, så ingen hjælp at hente der.

Så jeg tillader mig lige at oprette endnu en af de dér irriterende restore tråde Rolling Eyes

Okay.

1. Scenarie:
Jeg har taget en full + structure + data backup i phpbb eget interfjæs.
Jeg har lavet en backup af hele db'en i phpmyadmin.
Bare for en sikkerhedsskyld.
(version ved backup 2.0.21) - DB fylder 6.5MB.


2. Forum filer er blevet slettet og alle tabeller slettet i phpmyadmin.
Nu skulle det hele være clean og klar til reinstall.
Det skal sige at forummet skal installeres det præcis samme sted, hos samme host og den nye sti til forummet er ikke ændret fra den gamle.
Table prefix er det samme, nemlig phpbb_ og installationen går fejlfrit, i hvertfald indtil jeg skal til at restore.

Jeg har dog kontrollet config.php og både localhost, db, user, pass er som det skal være.

3. Min phpmyadmin er sat til at tillade db'er op til 20MB, så jeg giver det et forsøg med min 6.5MB db. Den uploader også uden at time-out..
screendump - http://div_pic.undermountain.dk/forumprob/full_restore.png
Umiddelbart. Tilbage til forummet. Intet. Kun det nye. der er ikke læst noget ind.
Okay, det er også en stor fil så jeg chunkede den med "makechunks".

4. Jeg prøver så at bruge phpmyadmin til at uploade de ca 480KB store db chunks. Dette gør jeg via proceduren:
Trykke på db navnet til venstre i phpmyadmin -> vælge "SQL" fanebladet -> og herefter gennemse og upload.
Blot efter et øjeblik får jeg følgende fejl:

Citat:
Database: underbjerget_dk kører på localhost
Fejl
SQL-forespørgsel :
CREATE DATABASE `underbjerget_dk`
MySQL returnerede:
#1007 - Can't create database 'underbjerget_dk'. Database exists


Okay, så databasen eksisterer, det er korrekt, men jeg kan ikke slettet databasen, men kun tabellerne. Jeg har ikke rettigheder til at slette databasen hos b-one, det ligger fast og i dette tilfælde underbjerget_dk .

Hvis jeg nu flusher alle tabeller igen og starter forfra uden at have installere de nye tabeller ved en frisk install af forummet, laver den samme fejl. Som om at den bare bitcher over at databasen eksisterer.

5. Jeg prøver så at bruge bigdump.
Bigdump kunne jeg heller ikke få til at virke.
Jeg får en fejl som siger at jeg skal droppe de gamle tabeller og starte forfra. Denne fejl får jeg selv om der ikke er nogle tabeller.
Så den glemmer jeg og hopper videre til en anden metode..

6. Prøve at restore en chunk via phpbb's interfjæs restore funktion i admin panelet. Den loader et stykke tid og følgende fejl kommer:

Citat:
Error importing backup file
DEBUG MODE
SQL Error : 1007 Can't create database 'underbjerget_dk'. Database exists
CREATE DATABASE `underbjerget_dk`
Line : 980
File : admin_db_utilities.php


okay, nu er vi efterhånden en lykkelig familie.
phpmyadmin og phpbb er nu enige om at databasen allerede eksisterer.
Men, jeg vil jo bare restore indholdet af de std. 30 tabeller i phpbb.
Derfor har jeg heldigvis en "data only" backup som jeg prøver at restore.
Først prøvede jeg i phpbb panelet og herefter i phpmyadmin.
No cigar.

Fejl:

Citat:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, support@b-one.net and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.


Jeg gentager proceduren med de chunkede filer fra "data only backup'en"
Fejl:
Citat:
Error importing backup file

DEBUG MODE

SQL Error : 1062 Duplicate entry '1' for key 1

INSERT INTO phpbb_categories (cat_id, cat_title, cat_order) VALUES('1', 'Lobbyen', '10')

Line : 980
File : admin_db_utilities.php


Jeg kunne blive ved med andre forsøg, men jeg vil lige stoppe her og trække vejret.
Evt. høre om der er nogen der allerede på nuværende tidspunkt har nogle gode idéer?

Mange tak for at i har gidet at sidde at læse dette semi-lange indlæg.

De bedste hilsner.

Thomas Kristensen
Avatar billede erikjacobsen Ekspert
08. august 2006 - 15:41 #1
Du er der jo næsten.
1) Nej, ikke sige CREATE DATABASE - det har du opdaget
2) Du skal bruge små klumper, måske mindre end dem du har, så tjek hver gang om du får at med
3) "Duplicate entry '1' for key 1"  skyldes bare at du ikke fik fjernet tabellen eller indholdet af tabellen først, eller at dine klumper overlapper.

Det er egentlig skørt at håndtere en stor database kun gennem phpmyadmin, og ikke have en mere direkte adgang til databasen. Man skal i hvert flad kun gøre det på den måde, hvis man synes det er sjovt, og man ikke har andet og lave. ;)
Avatar billede tk421 Nybegynder
08. august 2006 - 18:03 #2
Hej Erik.
Hvad mener du med "ikke sige CREATE DATABASE"? Er der noget kode der skal fjernes et sted i en fil eller hvordan?

mvh

Thomas
Avatar billede erikjacobsen Ekspert
08. august 2006 - 18:33 #3
Som du selv har opdaget brokker den sig over CREATE DATABASE, så du skal bare ikke have den linie med.
Avatar billede tk421 Nybegynder
08. august 2006 - 22:14 #4
Okay. Enig.
Men det jeg godt kunne bruge af viden, er hvordan jeg fjerner denne linie kode.
Hvor er den henne osv.
Hvis jeg søger efter create database i SQL filen, finder den intet.
Såh... Hjælp 8-P
Avatar billede erikjacobsen Ekspert
08. august 2006 - 22:26 #5
Hvis der ikke står CREATE DATABASE i sql-filen, er der ikke noget at fjerne, og så brokker den sig heller ikke over det. Hvis den brokker sig over det, så står det et sted. Hvad mere kan man sige ... ;)
Avatar billede tk421 Nybegynder
08. august 2006 - 23:33 #6
Jeg bruger søgefunktionen i notepad.
Den burde vil finde det hvis det står der?
De eneste "creates" der eksisterer er CREATE TABLE. Det er jo fint nok.
Hvad siger du?
Avatar billede tk421 Nybegynder
09. august 2006 - 00:55 #7
Hej Erik
Jeg har stirret mig blind på det.
Linien står næsten helt øverst.
Den er nu slettet og det lykkedes mig at smide chunks'ne op igen og restore skidtet.

Det var nødtvendigt at fjerne "CREATE DATABASE" i den SQL fil som PHPMYADMIN laver.
Samtidig var jeg nødt til at re-installere forummet og tabellerne.
Herefter slettede jeg så alle tabeller.

Efter at have nærstuderet henholdsvis PHPBB's SQL fil og PHPMYADMIN's SQL fil, fandt jeg ud af at de arbejder efter forskellige princippet.

PHPBB:
SQL filen:
creater IKKE database og samtidig kontrollerer den om tabellerne eksisterer i forvejen. Hvis de gør det, sletter den indholdet og lægger det op som står i filen.
Hvis der ikke er nogen tabel, creater den tabellen og smider data'en op.

phpmyadmin:
Starter med at create databasen.
Herefter opretter den tabellerne.
Hvis tabellerne eksisterer fejler den.
Hvis databasen eksisterer fejler den.

Nu ville makechunks ikke dele den SQL fil som PHPBB havde lavet, så jeg var nødt til at gå efter phpmyadmin SQL fil.
Fremgangen var egentlig simpel.

1. Fjerne linien CREATE DATABASE.
2. Slette tabellerne.
3. Restore via phpymadmin med de chunkede SQL filer.

Voila!

Jeg takker jer alle for hjælpen
:D
Avatar billede tk421 Nybegynder
09. august 2006 - 00:57 #8
Erik hvordan giver jeg dig pointene?
Avatar billede erikjacobsen Ekspert
09. august 2006 - 09:03 #9
Jeg samler slet ikke på point, tak. Svar selv, accepter eget svar.
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