webForumDet fria alternativet

Importera databas i PhpMyAdmin

18 svar · 822 visningar · startad av silfver

silfverMedlem sedan apr. 200312 679 inlägg
#1

Jag har två nästan identiska databaser. De innehåller tabeller med samma namn, men en av databaserna innehåller korrupta tabeller. Så nu vill jag ersätta de korrupta tabellerna med fungerande. Men när jag i PhpMyAdmin väljer Import så får jag felmeddelandet:

#1050 - Table 'pixelpost_addons' already exists

Hur kan man komma runt det här?

Egentligen vill jag bara kopiera tabellstrukturen, inte dess innehåll och data. Förstår ni hur jag menar? Det är inte innehållet som är korrupt, utan det är någon tabell som har fel värden av något slag.

Hoppas att jag har förklarat så ni förstår. Har ni några förslag på hur man kan ersätta datan?

I PhpMyAdmin valde jag: Exporttyp: Replace innan jag exporterade till en sql-fil, men det gör ingen skillnad.

r\ Ena databasen innehåller min fotoblogg, alltså en massa information om bilder, kommentarer och allt sådant. Men någon tabell har kraschat så att jag nu inte längre kan visa exif-information till varje bild. Så i stället för att göra om allt, förlora alla kommentarer och bildbeskrivningar vill jag bara ersätta databasen med ny fräsch data från fungerande tabeller.

Danne VMedlem sedan aug. 20068 090 inlägg
#2

Har du tabellerna skapade i den "nya" databasen INNAN du importerar till den?
I så fall; droppa dom och ha databasen helt ren.

silfverMedlem sedan apr. 200312 679 inlägg
#3

Danne V skrev:

Har du tabellerna skapade i den "nya" databasen INNAN du importerar till den?
I så fall; droppa dom och ha databasen helt ren.

Problemet är ju att jag måste ersätta tabellen. Tar jag bort den så förlorar jag ju all data. :l

Danne VMedlem sedan aug. 20068 090 inlägg
#4

Njae... du kan ju backa upp (exportera och spara) och sedan droppa tabellerna och sedan importera den korrekta databasen. Eller skapa en helt ny databas som du importerar till och sen bara ändrar i webbpplatsens konfiguration från den gamla till den nya.

silfverMedlem sedan apr. 200312 679 inlägg
#5

Danne V skrev:

Njae... du kan ju backa upp (exportera och spara) och sedan droppa tabellerna och sedan importera den korrekta databasen. Eller skapa en helt ny databas som du importerar till och sen bara ändrar i webbpplatsens konfiguration från den gamla till den nya.

Jag kanske förklarar dåligt, eller så förstår jag illa. :) Den fungerande databasen innehåller inte all data som jag behöver. Den saknar alltså alla bilder, kommentarer och information som den korrupta har. Så vad jag behöver göra är att bara exportera tabellstrukturen på de fungerande tabellerna och ersätta dem med den korrupta.

Är du med på hur jag menar? :)

stevenetMedlem sedan juni 20001 251 inlägg
#6

Är det inte smidigare att fixa felet på de nuvarande tabellerna istället? (förutsatt att det är MyISAM)

SQL-fråga:

REPAIR TABLE tabellnamn
silfverMedlem sedan apr. 200312 679 inlägg
#7

stevenet skrev:

Är det inte smidigare att fixa felet på de nuvarande tabellerna istället? (förutsatt att det är MyISAM)

SQL-fråga:

REPAIR TABLE tabellnamn

Problemet är att jag inte vet vad det är som är fel, eller vilken tabell det är som strular. Vad exakt gör den frågan du skrev?

stevenetMedlem sedan juni 20001 251 inlägg
#8

Reparerar tabellen "tabellnamn". Vet du inte vilken tabell som är trasig kan du gå igenom dem såhär:

SQL-fråga:

CHECK TABLES tabell1, tabell2, tabell3

Alternativt i phpMyAdmin markera alla tabeller och välja "Kontrollera tabell".

silfverMedlem sedan apr. 200312 679 inlägg
#9

Inga tabeller visade sig ha något fel. Då är det alltså strukturen det är fel på.

Jag skulle behöva uppdatera den gamla strukturen med den nya. Men hur gör jag det?

ZaimanMedlem sedan dec. 20014 239 inlägg
#10

I phpmyadmin är det väl "bara" att ändra fält, lägga till ta bort fält i själva webgränssnittet?

Annars används kommandot ALTER (som jag inte kan i huvudet just nu).

silfverMedlem sedan apr. 200312 679 inlägg
#11

Zaiman skrev:

I phpmyadmin är det väl "bara" att ändra fält, lägga till ta bort fält i själva webgränssnittet?

Annars används kommandot ALTER (som jag inte kan i huvudet just nu).

Du menar att jag ska göra det manuellt? Det är ju en sista utväg i så fall...

ZaimanMedlem sedan dec. 20014 239 inlägg
#12

Ja precis.. Manuellt. Hur många tabeller rör det sig om?
Jämför så du får strukturerna lika.

silfverMedlem sedan apr. 200312 679 inlägg
#13

Zaiman skrev:

Ja precis.. Manuellt. Hur många tabeller rör det sig om?
Jämför så du får strukturerna lika.

13 stycken. Jag trodde att man enkelt kunde kopiera tabellstruktur från en databas och ersätta dem på en annan. Men det går alltså inte?

ZaimanMedlem sedan dec. 20014 239 inlägg
#14

Nu vet jag inte om det är så men jag tror att du är tvungen att droppa tabellen innan i så fall. Och det var du inte så sugen på att göra :)

stevenetMedlem sedan juni 20001 251 inlägg
#15

silfver skrev:

13 stycken. Jag trodde att man enkelt kunde kopiera tabellstruktur från en databas och ersätta dem på en annan. Men det går alltså inte?

Importerar du in datan i den nya strukturen först kan du sedan importera struktur och data in i den gamla.

silfverMedlem sedan apr. 200312 679 inlägg
#16

stevenet skrev:

Importerar du in datan i den nya strukturen först kan du sedan importera struktur och data in i den gamla.

Hehe, hur menar du? Kan du förklara lite mer exakt? :)

aasahMedlem sedan mars 20034 471 inlägg
#17

Tja om inte annat borde du kunna:

  1. Byt namn på alla 13 tabeller, via admingränssnittet, tex så att du ger alla prefixet old_ (eller vad du vill).
  2. Importera den struktur du vill ha. - Det funkar nu eftersom de gamla tabellerna inte längre ger namnkrock.
  3. Kopiera bara data från dina 13 old_tabeller in i de nya varianterna
silfverMedlem sedan apr. 200312 679 inlägg
#18

aasah: Gör på ditt sätt nu. Får massor av felmeddelanden, bland annat detta:

#1062 - Duplicate entry '1' for key 1

Jag vet inte hur jag ska tolka dessa. :l

aasahMedlem sedan mars 20034 471 inlägg
#19

Åh! Det beror sannolikt på att du lagt in både data och struktur från backupen och sedan kopierar. Om vissa rader i dina old_tabeller finns i backupen också eller om du har auto_incrementad nyckel så kommer resultatet att bli att du försöker lägga in de äldsta raderna dubbelt - vilket naturligtvis inte går.

OBS! att jag skrev kopiera in den struktur du vill ha på tabellerna i 2) ovan!

För att lösa problemet: 1) Ta bort tabellerna inlästa från backup.
2) Kopiera backup-filen/filen du importerar från för säkerhets skull.
3) Titta över denna fil i någon texteditor. Använd klipp och klistra (och sök efter "CREATE TABLE" (tex) för att lokalisera och klippa ut bara själva tabelldefinitionerna - inte medföljande data. Spara bara dessa i någon ny fil.
4) Importera den.
5) Kopiera från old_tabellerna.

134 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)