Migrera från Access till MariaDB/MySQL

Microsoft Access är en filbaserad databaslösning som inte är anpassad för dynamiska webbsidor. Trots det används den i stor utsträckning till just detta. I stället rekommenderar vi varmt MariaDB/MySQL, som ingår i ditt webbhotellspaket hos oss. MariaDB/MySQL ligger på dedikerade databasservrar som är anpassade för att hantera många samtidiga anslutningar. Därför fungerar MariaDB/MySQL utmärkt till just dynamiska webbsidor.

I den här guiden beskriver vi hur du enkelt migrerar (flyttar) från Access till MySQL.

Guiden förutsätter att du har skapat en MariaDB/MySQL-databas via Loopia Kundzon och att du kan ansluta till den direkt från din dator. Notera även att guiden förutsätter att du har en tom MariaDB/MySQL-databas från början. Om din MariaDB/MySQL-databas redan innehåller tabeller, se då till att din Access-databas inte använder tabeller med samma namn.

Installera Access To MySQL

Access To MySQL är en Windows-applikation som du kan använda för att exportera innehållet i din .mdb-fil (din Access-databas) direkt till din MySQL-databas. Den är helt kostnadsfri och kan laddas hem härifrån.

När du laddat hem .zip-filen och packat upp den (med exempelvis WinZip eller IZArc) startar du installationsprogrammet genom att dubbelklicka på den resulterande .exe-filen. Starta programmet efter installationen.

Om du får nedanstående felmeddelande när programmet startar måste du först installera en ODBC-drivrutin från MySQL. Följ då guiden längre ner på den här sidan, under Installera MySQLs ODBC-drivrutin. Om programmet startar som det ska, fortsätt enligt stegen nedan.


Felmeddelande om saknad ODBC-drivrutin vid programstart

Så här ser programmet ut när det har startat:


Startskärmen i Access To MySQL

Klicka på Next.


Välj Access-databasfil i fältet Filename

Klicka på knappen ”” till höger om fältet Filename och leta rätt på din Access-databas (i formatet filnamn.mdb). Om du har filen på din webbserver hos oss behöver du först ladda hem den till din dator med ett FTP-program.

Klicka på Next.


Välj Direct transfer och fyll i databasuppgifterna

Välj alternativet Direct transfer. Fyll sedan i de efterföljande fälten med nedanstående värden:

Host
mysqlXXX.loopia.se (ersätt XXX med numret på din MySQL-server)
Port
3306
Username
Ditt användarnamn
Password
Ditt lösenord
Destination database
Namnet på din databas, ex mindoman_se
Storage engine
MyISAM

Klicka på Next.


Välj vilka tabeller som ska överföras

Se till att alla tabeller du vill överföra till MySQL-databasen är ibockade.

Klicka på Next.


Bekräfta inställningarna för överföringen

Se till att alla rutor är ibockade enligt bilden ovan. Korrigera dem bara om du är helt säker på vad du gör.

Klicka på Run Now.


Överföringen pågår

All data från din Access-databas har nu flyttats in i din MySQL-databas.

Uppdatera din ASP-sida

För att din ASP-sida ska använda den nya MySQL-databasen i stället för den gamla Access-databasen måste du först uppdatera din connection string. Det gör du så här (klicka här för instruktioner för ASP.NET):

En connection string för Access ser ut så här:

Dim connection_string
connection_string =
    "Provider=Microsoft.Jet.OLEDB.4.0;" &
    "Data Source=" & Server.Mappath("databas.mdb") & ";" &
    "User Id=användarnamn;" &
    "Password=lösenord;"

Byt ut den mot följande:

Dim connection_string
connection_string = "Driver={MySQL ODBC 5.1 Driver};" &
 "Server=mysql117.loopia.se;" &
 "Port=3306;" &
 "Option=131072;" &
 "Stmt=;" &
 "Database=mindoman_se;" &
 "Uid=användarnamn;" &
 "Pwd=lösenord"

Notera att anslutningssträngen måste stå på en och samma rad och bara är uppdelad på flera här för att få plats på bredden. Det vill säga att allt från och med rad två i vardera kodexempel ska stå på samma rad.

Det du måste lägga till i den nya anslutningssträngen är alltså servernamnet till din MySQL-server (i exemplet ovan mysql117.loopia.se), namnet på din databas (i exemplet ovan mindoman_se), ditt användarnamn och ditt lösenord.

Om du har anslutningssträngar i flera filer måste samtliga uppdateras. När det är klart, och du har sparat dina filer och laddat upp dem till ditt FTP-konto, är din webbsida MySQL-driven i stället för Access-driven.

Grattis!

Uppdatera din ASP.NET-sida

Uppdatering av koden i ASP.NET är lite klurigare än i ASP. Notera att all kod nedan baseras på den exempelkod vi har tillgänglig här i supportdatabasen för anslutning till Access eller MySQL. För en bättre förståelse av vad koden nedan gör kan du ladda ner exemplen och läsa igenom koden.

Först måste du byta ut följande namespace:

<%@ Import Namespace="System.Data.OleDb" %>

… och ersätta det med följande:

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="MySql.Data.MySqlClient" %>

Därefter är det själva Page_Load()-metoden som behöver uppdateras. I din kod för anslutning till Access ser den ut ungefär så här:

public void Page_Load(object Sender, EventArgs E)
{
  OleDbConnection oConn = new OleDbConnection();
  string strConn = "";
  string strResult = "Anslutningen lyckades.";

  strConn = "Provider=Microsoft.Jet.OLEDB.4.0;data source=" +
    HttpContext.Current.Server.MapPath("sökvägtilldindatabasdb.mdb");

  try
  {
    oConn.ConnectionString = strConn;
    oConn.Open();
  }
  catch(OleDbException eDBOpen)
  {
    strResult = GetDBError(eDBOpen);
  }

  oConn.Close();
  LabelResult.Text = strResult;
}

Den här koden ska du ersätta med följande kod (notera att tecknet \ innebär att raden inte ska radbrytas):

public void Page_Load(object Sender, EventArgs E) {
  MySql.Data.MySqlClient.MySqlConnection conn;
  string myConnectionString;
  string strResult = "Anslutningen lyckades.";
   
  myConnectionString = \
    "server=mysql.dindoman.se;uid=dindoman_se@l123123; \
    pwd=XXX;database=dindoman_se;";
  
  try {
    conn = new MySql.Data.MySqlClient.MySqlConnection();
    conn.ConnectionString = myConnectionString;
    conn.Open();
    conn.Close();
  } catch (MySql.Data.MySqlClient.MySqlException ex) {
    strResult = GetDBError(ex);
  } catch (System.Net.Sockets.SocketException se) {
    strResult = GetDBError(se);
  }

  LabelResult.Text = strResult;
}

Metoddeklarationen GetDBError() ska du ändra från detta:

public string GetDBError(OleDbException e) {

… till detta:

public string GetDBError(Exception e) {

När det är klart, och du har sparat dina filer och laddat upp dem till ditt FTP-konto, är din webbsida MySQL-driven i stället för Access-driven.

Grattis!

Installera MySQLs ODBC-drivrutin

För att programmet Access To MySQL ska kunna ansluta till din MySQL-databas hos Loopia behövs en ODBC-drivrutin. Om du saknar den kan du ladda hem den från MySQL på den här adressen.

När du sparat .msi-arkivet på din dator, dubbelklicka då på filen för att starta installationsprogrammet. Då möts du av följande fönster:


Startfönstret för installation av ODBC-drivrutinen

Klicka på Next.


Välj installationstypen Typical

Välj alternativet Typical och klicka på Next.


Bekräfta installationen

Klicka på Install.


Installationen pågår

Drivrutinen installeras nu.


Installationen är klar

Allt klart. Klicka på Finish för att avsluta installationsprogrammet.

Was this article helpful?

Related Articles

Få hjälp via fjärrsupport

Klicka på knappen nedan för att starta fjärrsupport via ISL. Ange sessionskoden du fått från oss och klicka på Anslut, så är vi med dig alldeles strax!

Starta fjärrsupport