Snälla, migrera från Access till MySQL

MySQLTrots att en kostnadsfri MySQL-databas ingår i alla våra webbhotellskonton är det många av våra Windows-kunder som istället använder sig av Microsoft Access för sina databasdrivna sidor. Access är en filbaserad databaslösning som fungerar prima för mindre desktop-applikationer, men är egentligen inte alls lämplig för välbesökta webbsidor.

MySQL å andra sidan är utvecklat för just prestanda och många samtidiga accesser. Dessutom kör vi alla MySQL-databaser på dedikerade och kraftfulla databasservrar. Sålunda är MySQL en finfin lösning för just välbesökta webbsajter.

Det många Access-användare upptäcker, efter att deras sajter blivit populära, är diverse till synes oförklarliga prestandafel som uppstår på grund av just Access begränsningar som databassystem. För att i största möjliga mån försöka eliminera dessa kan en migrering till MySQL vara nödvändig.

Detta behöver dock inte vara så klurigt. Nu har vi nämligen gått till botten med hela migreringsprocessen och tagit fram en detaljerad steg för steg-instruktion som du hittar i vår kunskapsdatabas.

I grova drag handlar det om att ladda hem den fasligt smidiga lilla applikationen Access to MySQL som gör data-flytten från Access till MySQL med bara några klick.

Därefter handlar det om att uppdatera anslutningskoden i dina ASP- eller ASP.NET-filer. Inte heller detta är någon raketforskning. Har du vid skapandet av dina Access-anslutningar använt dig av vår exempelkod i kunskapsdatabasen så handlar det inte om annat än några klipp och klistra-övningar i valfri texteditor.

Vill du också få tillbaka de där slitna hårstråna som rykt på grund av Access-relaterade problem och istället få en välmående kalufs och en rykande snabb sajt? Då är ett besök till vår nya migreringsguide i kunskapsdatabasen att rekommendera!

Lycka till!

PS. Om du även vill rädda hårstråna på driftpersonalen hos ditt vänliga webbhotell, snälla, byt från ASP till ASP.NET.

Dela detta inlägg:

15 tankar kring ”Snälla, migrera från Access till MySQL

  1. Matts Bengtzén

    Jag tycker det är otroligt roligt att läsa hur ni ber era användare att byta databas-teknik, när ni i själva verket är otroligt dåliga på det här med databaser.

    Ta inte detta på fel sätt, jag tycker ni som webbhotell är sveriges främsta, vad gäller webbtjänster och kontrollpanel (med betan, i alla fall). Men när det kommer till databasen så är ni urusla. Jag tycker det är dåligt att ni bara erbjuder en databas till era paket, när man kan ha flera domäner kopplade till samma paket. Jag vet, man kan lägga till prefix till sina tabeller så det inte blir några krockar, men ändå. Som Sveriges främsta webbhotell önskar man mer än så.

    Att ni dessutom inte ens säljer plats på en Microsoft SQL Server är uruselt, och tvingar mig som .Net-utvecklare att lägga mina kunders webbsidor på Binero istället, eftersom kopplingen mellan asp.net och sql server är så stark.

    Så snälla, börja inte klaga på era kunder för att de använder access-databaser, när ni själva inte erbjuder tillräckligt med alternativ själva.

  2. Henrik

    Snälla, sluta snåla med MySQL-databaserna i era webbhotellspaket. En databas per paket känns lite väl lite…

  3. Fredrik Berglund

    Matts och Henrik: Vad gäller antalet MySQL-databaser per paket så är detta en paketeringsfråga. I dagsläget erbjuder vi en (1) kostnadsfri databas per paket, men detta kan förstås komma att ändras i framtiden. De önskemål ni inkommer med på detta sätt hjälper självklart till att övertyga oss om att detta kan vara en bra idé.

    Matts: Stort tack för de positiva orden gällande våra webbtjänster och vår kontrollpanel. Vad gäller utbudet av databastyper så håller jag förstås med om att MsSQL kan vara smidigare än MySQL för exempelvis ASP.NET-utvecklare. Om eller när MsSQL kan erbjudas av oss vet jag ej idag, däremot är det ett faktum att oavsett detta så är MySQL en betydligt bättre databaslösning än Access, och då vi trots allt erbjuder MySQL-databaser, så är en flytt från Access till MySQL att rekommendera i de allra flesta fall. MySQL ger i nästan samtliga fall både besökaren och hemsidesmakaren en bättre uppplevelse.

  4. Fredrik

    Jag tycker det är anmärkningsvärt att ni uppmanar folk till att konvertera från Access till MySql så generellt som ni gör.

    Först och främst, har ni själva testat en konvertering av en Access db som är lite mer än någon tabell och någon enstaka relation? Inte helt 100% brukar det bli.
    Sedan glömmer ni helt att tala om att det är flera stora skillnader i SQL:en och det kan bli en del ganska trixiga problem för den som bara kan klipp och klistra (som ni verkar förespråka). Alltså inte ”bara” att modifiera kopplingssträngen som ni skriver.

    Sedan så tycker jag, som påpekats i tidigare kommentar, att ni är riktigt snåla som endast erbjuder EN databas som standard i era paket. Att ni tar hutlöst betalt för varje extra db man beställer gör ju inte saken bättre. Detta med endast en db är oftast den avgörande faktorn när jag rekommenderar andra hotell framför erat då kostnaderna springer iväg en hel del om man driver flera siter.

    För övrigt så kan jag passa på att skriva lite om eran nya kontrollpanel. Ett steg i rätt riktning!

  5. Anonymous Coward

    Jag tror inte direkt att det menas att migreringsguiden passar för alla, men många småsidor tar den nog utan problem, vilket jag gissar är majoriteten av Loopias MS Access-användande websites.

    Jag skulle inte direkt bli förvånad om Loopia har en mängd gamla sönderspammade gästböcker på hundratals MB som siteägaren inte vet om, inte orkar rensa upp i, har glömt bort, eller struntar i.

    När en sådan MS Access-driven sida blir välbesökt av människor, spambots, sökmotorbots eller något annat händer alla möjliga intressanta saker med kombinationen Windows/IIS.

    Sen är det klart att om man har investerat mycket tid i att göra exempelvis relationer, datainmatningsformulär, diverse automatisering, scripting osv. i sin MS Access-databas, så blir det naturligtvis jobbigare att byta. Men det är helt klart värt det i längden.

    Jag har noterat ett par saker under mina år som sysadmin, blandannat för MS Access-infekterade webservrar:

    1. Valet att använda MS Access för sin website beror ofta på okunskap om databaser, inte på fakta.

    2. Många sitedesigners är glada amatörer, inte proffs. Se 1).

    3. Många färdiga lösningar skrivs av amatörer som bundlar en MS Access-databas av bekvämlighetsskäl. Se 2).

    4. Microsoft har eller har haft KB-artiklar där de skriver att MS Access aldrig var avsett eller designat för att driva websites. Det kan hända att de skriver så för att sälja mer MS SQL Server-licenser, men kanske inte bara därför.

    5. Förutom Microsofts KB-artikel/artiklar i ämnet så finns en otrolig mängd sidor på Internet som tar upp prestandaproblem relaterade till just MS Access/Windows/IIS där MS Access är boven. Inte alla sidor skrivs av nybörjare, utan även veteraner har likande erfarenheter.

    6. Det finns ingen 64-bitars drivrutin för MS Access, vilket innebär att om man kör en 64-bitars installation av Windows 2003/2008, kanske för att nyttja mycket minne (ja, jag vet om PAE) så måste man köra MS Access-drivrutinen i emulerat 32-bitarsläge till _grym_ prestandaförlust som kan sänka riktigt kraftiga servrar. Jag har sett en 4 x quadcore-server med 64GB minne gråta av just detta skäl.

    7. Om man är smart nog att göra lite mer avancerade saker som Loopias guide inte pallar att hantera så är man troligtvis smart nog att implementera om databasen på en riktig databaslösning.

    8. Om man inte har prestandaproblem nu på sin MS Access-drivna website så kommer man troligtvis att få det i ett senare skede om siten blir välbesökt.

    Mitt inlägg i debatten är inte avsett att dissa folk. Men man tjänar på att använda rätt verktyg och läsa på lite innan man lägger tid och/eller pengar på sin website.

    MS Access kan vara rätt verktyg om man vill igång snabbt på liten skala, men då får man sätta av tid/penga-budget åt att uppgradera till en databaslösning som skalar när websiten börjar bli lastad.

  6. K. Lindgren/C.W.Tech

    Mycket märklig uppmaning från Loopias sida!

    Vad händer om vi vägrar att byta, blir vi uppsagda då!? Det resulterar ju direkt i en flytt till Binero.

    Loopia uppmanar även sina kunder att de skall byta sin webbutveckling från ASP till ASP.Net. Ett sådant byte är ingen enkel process, vilken försvåras extra då de flesta övningsexempel i ASP.Net baserar sig på att man använder MS SQL Server. Även denna uppmaning saknar grund då det är en omställningsprocess som i slutänden måste betalas av någon. Kanske Loopia kan erbjuda en konverteringskurs i samma paket som man erbjuder MS SQL Server någon gång i den ovissa framtiden!?

    Hur skulle det vara om ni lyssnade på kundernas önskemål om att erbjuda även MS SQL Server? Eller skall ni vänta på att de tröttnat på Loopia och flyttar till Binero?

    Jag har pratat med Fredrik Berglund om detta önskemål i mer än två års tid och svaret är alltid detsamma (precis som ovanstående svar till Matts & Henrik), vi vet inte när det blir osv osv. Hur svårt kan det vara att erbjuda MS SQL Server?

    Personligen har jag tröttnat på Loopias inställning och inte bara p.g.a databaser utan även på de återkommande driftstörningarna på mail (5-6 timmars leveranstid vissa dagar) och annat som elavbrott mm mm. Har ni fortfarande ingen dieselgenerator i standby att använda vid strömavbrott?

    Jag brukar avråda mina kunder att inte lägga sig på ett webbhotell som inte erbjuder MS SQL Server av den enkla anledningen att det blir dubbelt jobb att utveckla webbsiter i ASP.Net om man inte använder MS SQL Server. Men besluten måste fattas av kunden själv och ingen annan.

    En del kunder vill ha lägsta kostnaden för sina webbsiter och väljer då kanske att använda den billiga Access eftersom utvecklaren oftast tar mer betalt för utvecklingsarbetet om det är mer avancerade databaslösningar. Hemsidans komplexitet avgör också i valet av databaslösning.

    Konverteringen från Access till MySQL
    Vem har skrivit konverteringsprogrammet från Access till MySQL? Det verkar vara ett 3:eparts programvara. Finns det några garantier att programmet fungerar för alla miljöer?

  7. En annan kund

    Kom igen nu Loopia!

    Ni måste tåla kritik åxå. Låt dem som väntar på att få sina inlägg godkända åxå får vara med och tycka till! Annars är väl inte öppenheten mot kunderna speciellt stor, eller hur?

  8. Jan-Ove

    Låter bra, men som amatör undrar jag hur man gör när man har ett flertal accessdatabaser med samma namn men att dessa används i olika delar av hemsidan fritt var föe sig.

  9. Johan

    Jag håller i stort med föregående skribenter, men en sak har jag själv funderat på när ni jagat folk att byta från ASP till .NET och från Access till MySQL: Varför fungerade det utmärkt hos er i alla år fram tills för ca ett år sedan när diverse problem började dyka upp, och varför fungerar Access och ASP fortfarande alldeles utmärkt på konkurrenter som Binero, internet.se, Digikom, Crystone och det betydligt mindre Gotlandica? De har inga problem alls som jag märkt vad gäller just Accessdatabaser. Nu ska sägas att de sidor jag arbetar med inte alls har samma besöksfrekvens som t ex svd.se, men den webbplats som har mest besökare, ett par hundra unika besökare per dag, klarar access utmärkt hos en av era konkurrenter. Jag vill verkligen inte kalla mig expert på området, långt ifrån, och kan därför inte heller dra någon riktig slutsats men jag tycker reflektionen ändå är intressant.

  10. Peter Lembke

    Jag är en av ASP + Access användarna. Två föråldrade och proprietära tekniker som jag vill bort från och tittar nu på PHP och SQLite. (Har Loopia stöd för SQLite?).

    Hade databasen legat på webbsidan för jämnan så hade det varit en smal sak att gå över till MySQL.

    Jag har en enda ASP-sida. Resten ligger i databaserna; innehåll, struktur och logik. Skriver jag fel kan webbservern få jobba till 100%. Det är då viktigt att testa offline först och sedan ladda upp de databaser som har ändrats.

    Alla Access-dialoger kan förstås ersättas utav webbformulär, men inte utan en stor insats. Men problemet kvarstår, att ladda upp data. Det är därför jag sneglar på SQLite hellre än MySQL. Kanske byter jag ut ett elände till ett nytt.

    En del av prestandaproblemen med Access har jag löst så att första besökaren hjälper nästa besökare genom att sidan hamnar i en databas med färdiga sidor. Gamla sidor raderas automatiskt.

  11. Daniel

    Först och främst; Detta gäller inte MS Access generellt, utan i den specifika rollen som databas för websites. Vår åsikt är alltså inte att MS Access är en dålig produkt, utan att MS Access används i fel roll ibland.

    @K. Lindgren/C.W.Tech:
    Vi har full förståelse för att många kunder använder MS Access (och ASP). Men utvecklingen på mjukvarusidan går framåt. Microsoft utvecklar inte längre ASP och JET utan väljer istället att fokusera på ASP.NET och ACE Engine, precis som många andra teknologier de förbättrat och ersatt genom åren.

    För runt tio år sedan var det ofta CGI som gällde. Nuförtiden används inte CGI i samma utsträckning. Man kanske betalade den övergången själv, men det blev kanske inte alltid en kostnad utan snarare en vinst när man kunde ersätta sitt gamla komplexa CGI-program i C med 20 rader skriptspråk. Kommer det bli invändningar när vi går över till Windows 2008/IIS7 också? Säkert, men vi kommer ändå att göra det, eftersom det leder till bättre tjänster för våra kunder, vilket alltid är vår motivation för ändringar.

    Många övergångar mellan teknologier möter motstånd. Det finns ibland bra skäl till motståndet. Det kan vara, som du skriver, en kostnad. Det kan även vara rädsla för förändringar. Det är klart att Microsoft har anpassat sina verktyg för att primärt fungera bäst med sina egna komponenter, men vi har många, många kunder som kör ASP.NET mot MySQL helt utan problem.

    Vad det gäller konvertering från MS Access till annan databas så går det inte att lämna några fullständiga garantier för något verktyg, vilket jag är övertygad om att du redan vet. Våra tester visar att verktyget fungerar bra med tanke på vilka skillnader i finesser som finns i databaserna. I våra konton ingår en gratis MySQL-databas om du vill prova verktyget.

    Vi har arbetat med hosting i tio år och sett en uppsjö helt onödiga problem som kan härledas både till ASP och MS Access. Detta påverkar vår kundbas negativt och det vill vi inte. ASP.NET/MySQL är naturligtvis inte problemfritt, men vi är övertygade om att kombinationen ASP.NET/MySQL ger upphov till färre problem än kombinationen ASP/MS Access. Vi delar flera av de erfarenheter ’Anonymous Coward’ går genom ovan.

    MS SQL Server är en bra databasprodukt och vi har tittat på att införa det för våra kunder. Vi har inte gjort det ännu, men det är vår avsikt att göra det.

    @Jan-Ove:
    I våra konton ingår en gratis MySQL-databas. Om man har fler MS Access-databaser kan man konsolidera dom till en MySQL-databas, exempelvis genom att använda tabellprefix om det passar situationen. En annan variant är att lägga till fler MySQL-databaser i sitt konto.

    @Johan:
    Ett par hundra unika besökare om dagen låter inte som mycket, men last mot databas kan man inte avgöra baserat på antal unika besökare. Vi har haft långa diskussioner med tekniker på Microsoft om detta. Någonstans i MS Access-kedjan finns det delade resurser som när dom tar slut kan påverka servern. Det verkar inte gå att justera resurserna eller mäta dom per det vi kommit fram till med Microsoft.

    @Peter Lembke:
    Vi har inte stöd för SQLite, men jag ska titta på om vi kan införa det.

  12. Kristoffer

    Jag har kört med Access-databaser sedan jag började med klassisk ASP för ungefär 4 år sedan. Kanske hade varit bättre att satsa på PHP+MySQL men det blev som det blev. Nu har jag ett antal sajter med Access-databas och är lite ovillig till att migrera dem till MySQL. Det beror nog både på att jag är van vid ASP+Access, men även att det kommer bli väldigt mycket jobb med migreringen.

    Dessutom tycker jag att PHP myAdmin är riktigt värdelöst att jobba i. Finns det någon annan lösning som liknar Access på så sätt att det är ett program man arbetar i, istället för ett slött webbgränssnitt.

    Åter till Access. Precis som Johan skriver så började problemen för något/några år sedan. Innan dess hade jag inga problem alls, inte en enda Service Unavailable. Det kan inte bero på att jag har fått fler besökare, den statistiken har snarare sjunkit med ca: 15%. Att antalet kunder som kör med ASP+Access skulle ökat markant ser jag inte heller som särskilt troligt. Vad beror det på egentligen?

  13. Jerry

    ”Dessutom tycker jag att PHP myAdmin är riktigt värdelöst att jobba i.”

    Finns fler alternativ att välja mellan. MySQL Query Browser, HeidiSQL, Navicat för att nämna några. Sistnämnda kostar men lär vara väldigt bra.

  14. Markus

    Jag har mängder av domäner hos er. Jag kommer att bli tvungen att börja flytta dem till någon annan där jag kan flera mysql-databaser utan extra kostnad.

    Planerar ni någon åtgärd för detta?

  15. Tård Wennerborg

    Hej Markus,

    I dagsläget har vi inga sådana planer. Du kan däremot enkelt använda samma databas till hur många sajter du vill. För att förenkla detta för dig själv är det en fördel att ge tabellerna till respektive sajt olika prefix.

Lämna ett svar

E-postadressen publiceras inte. Obligatoriska fält är märkta *