Denne feilen slet jeg litt med. Ikke bare litt. "Table does not exist". Det kan være litt slitsomt når du ser og vet at den eksisterer. Dette skjedde etter en oppgradering av MySQL fra MySQL Community Server til MariaDB. Problemet lå vel egentlig i forskjellen mellom InnoDB og MyISAM...muligens. La merke til at MariaDB fikk problemer med tabeller som brukte InnoDB og ikke MyISAM. Dvs tabell-dataene var ikke lesendes.

Ikke nok med at det var brukt forskjellige db-motorer men også det at jeg brukte en gammel database som ble opprettet/sist lagret for noen år siden. Og grunnen til at jeg brukte denne databasen? Tja...vledig mye rot og tull etter masse oppdateringer og lei av livet holdning....men men. For å gjøre en lang historie kort så har jeg en mistanke om at probleme startet fordi jeg brukte BtrFS og ikke ext4(som jeg skulle ha gjort). Det var mye rart, som skjedde som jeg ikke husker. Men nok om det.

Etter å ha lest mye om problemet(MySQL & error 1932) på nettet så kom jeg fram til absolutt ingenting. De fleste løsninger var løsninger som ikke fungerte for meg. De fleste gikk ut på alter table eller repair i en eller annen form. DET fungerer ikke.

Men et lite lys fikk meg inn i en ny tankegang. Hva med å rekonstruere situasjonen som jeg hadde for tre år siden? Ikke bytte OS eller noe, men installere den SQL-serveren jeg hadde fra den tiden? Enkelt. Og smålig genialt hvis jeg kan gi det selv; samt gi meg selv litt ros.

Poenget her er ikke å fjerne MySQL-serveren fra Linux-boksen, men sette opp en sql-server på "arbeids-stasjonen". Jeg bruker OpenSuSE 13.2 og default db der er MariaDB, som igjen man skulle tro er det samme men det er det ikke. Hva forskjellene er, vet jeg ikke. Forskjellene har jeg ikke tid til å sette meg inn i, så det får være en diskusjon for de som kan det. Men men..for å si det enkelt: Det er dette jeg gjorde:

  1. Avinstallerte MariaDB
  2. Installerte MySQL Community Server(som det heter på fint)
  3. Overførte filene ibdata1, ib_logfile0, ib_logfile1, samt data-katalogene til "database-katalogen"(for meg så er det "/var/lib/mysql/databasen_din")
  4. Startet MySQL-serveren
  5. Laget en bruker med alle rettigheter
  6. Tittet i stor spenning om jeg kunne lese tabellene...
  7. Gjorde en mysqldump på de aktuelle databasene
  8. Overførte SQL-filene til serveren og importerte sql-filene via phpMyAdmin(Må bare nevne det at sql-fila inneholder bare tabell-data...databasen må man opprette selv)
  9. Fryd og gammen. Have a nice day ja...

Hvordan man gjør dette på en Linux-boks kan man lett finne ut av på nettet. Her er noen lenker som var ganske hjelpsomme for meg:

Viser til (3): Disse filene er veldig viktig hvis man brukte InnoDB.... om jeg ikke husker helt feil. MariaDB er glad i MyISAM-motoren og vil gjerne ha *.MYI og *.MYD. Er det InnoDB som brukes, så vil den ha *.ibd-filene. Det var den siste jeg manglet for at det skulle fungere på MariaDB.....


En annen ting som jeg la merke til er at det brukes forskjellige karakter-sett. Et skikkelig rot kan man si. Mao så var det visse ting jeg ikke tenkte på når jeg lagde databasen for noen år tilbake. Dette kan jo være greit å rydde opp i for å si det sånn.

Det viktigste (føler jeg) er at man går fra InnoDB til MyISAM. Dette klarer man ikke via phpMyAdmin pga relasjonene mellom tabellene. Det enkleste(føler jeg) er å editere sql-fila som inneholder alt av informasjon om databasen. I phpMyAdmin har man en fin export funksjon som man kan bruke. Her er det bare å velge og vrake mellom hva slags informasjon du vil eksportere. Jeg valgte å eksportere absolutt alt. Jeg vil ta en drop på databasen før jeg importere skriptet igjen.'

Etter å ha eksportert så er det egentlig bare å åpne det i favoritt editoren din. Men det kan være veldig greit at den har en søk og "replace"-funksjon. Jeg har 3 ting jeg vil forandre på:

  1. ENGINE (fra InnoDB til MyISAM)
  2. COLLATE (til utf8_unicode_ci)
  3. CHARSET (til utf8)

Jeg har ikke vært entydig i bruken av disse 3 tingene og alt varierer alt ettersom hva jeg ikke fulgte med på og/eller følte for. Hvis jeg ikke husker helt feil så brukte jeg MySQL Workbench for å lage databasene, og det ble litt ymse mtp de tre tingene jeg nevnte ovenfor. Iallefall: Det er bare å forandre alt man vil forandre; husk å lagre; og så er det bare å importere skriptet fra phpMyAdmin igjen. Eller fra mysql-kommando-linjen. Det spiller ingen rolle. Databasen vil da bli bygget opp igjen på nytt med de nye "settingene".

Tar man en titt i database-katalogene så har man fått inn flere filer: *.MYI og *.MYD. Noe er blitt gjort riktig. Jeg tar en titt på nettsiden som er avhengig av disse databasene, og alt ser like bra/fint ut. Til og med norske bokstaver fungerer bra, og da tror jeg at jeg er ferdig med dette problemet. Men nå har jeg lagt til en liten backup som skjer et par ganger daglig. I og med at vi bruker Linux så er det en liten sak: "crontab -e" og så sett inn tidspunkt og kommando for backup.