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. Istä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 accesser. Således fungerar MariaDB/MySQL utmärkt till just dynamiska webbsidor.

I denna guide beskriver vi hur du enkelt migrerar från Access till MySQL.

Guiden förutsätter att du har skapat en MariaDB/MySQL-databas genom Loopia Kundzon och att du kan ansluta till den direkt från din dator. Notera även att denna guide 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 med vilken du direkt kan exportera innehållet i din .mdb-fil (din Access-databas) 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 denna (med exempelvis WinZip eller IZArc) så startar du installationsprogrammet genom att dubbelklicka på den resulterande .exe-filen. Efter installationen, starta programmet.

Om du under starten av programmet får fram nedanstående felmeddelande så måste du först installera en ODBC-drivrutin från MySQL. Följ då guiden lite längre ner på denna sida under Installera MySQLs ODBC-drivrutin. Om programmet däremot startar som det ska, fortsätt enligt nedanstående steg.


warning-after-install.png

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


access-to-mysql-01.png

Klicka på Next.


access-to-mysql-02.png

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

Klicka på Next.


access-to-mysql-03.png

Här klickar du för 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.


access-to-mysql-04.png

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

Klicka på Next.


access-to-mysql-05.png

Se till att alla rutor är ibockade enligt ovanstående bild. Endast om du är helt säker på vad du gör bör du korrigera dessa.

Klicka på Run Now.


access-to-mysql-06.png

Allt data från din Access-databas har nu flyttas in i din MySQL-databas.

Uppdatera din ASP-sida

För att låta din ASP-sida använda den nyuppdaterade MySQL-databasen istället för den gamla Access-databasen, måste du först uppdatera din connection string. Det gör du som följer (klicka här för instruktioner för ASP.NET):

En connection string för Access ser ut som följer:

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 connection-strä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 allt från och med rad två i vardera kodexempel ska stå på samma rad.

Det som du måste lägga till i den nya connection stringen ä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 connection-strängar i flera filer måste samtliga uppdateras. När detta är klart och du sparat din filer och laddat upp dem till ditt FTP-konto så kommer din webbsida att vara MySQL-driven istä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 nedanstående kod gör kan du alltså ladda ner de exemplen och läsa igenom koden.

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

<%@ 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 bör denna se 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;
}

Denna kod ska du ersätta med följande kod (notera att tecknen \ 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 ersätta från detta:

public string GetDBError(OleDbException e) {

… till detta:

public string GetDBError(Exception e) {

När detta är klart och du sparat din filer och laddat upp dem till ditt FTP-konto så kommer din webbsida att vara MySQL-driven istä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 så behövs en ODBC-drivrutin. Om du saknar denna kan du ladda hem den från MySQL på denna adress.

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


odbc-install-01.png

Klicka på Next.


odbc-install-02.png

Välj alternativet Typical och klicka på Next.


odbc-install-03.png

Klicka på Install.


odbc-install-04.png

Drivrutinen installeras nu.


odbc-install-05.png

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

Var den här artikeln till hjälp?

Relaterade artiklar