Flytte fra Access til MySQL

Microsoft Access er en filbasert databaseløsning som ikke er tilpasset for dynamiske nettsider. Likevel er det utstrakt bruk for nettopp det. Istedenfor anbefaler vi sterkt MySQL som inngår i webhotells pakken din hos oss. MySQL ligger på dedikerte database servere tilpasset for å håndtere mange accesser samtidig. På den måten virker MySQL perfekt til dynamiske sider.

I denne guiden beskriver vi hvor lett det er å flytte fra Access til MySQL.

Guiden forutsetter at du lager en MySQL-database i Loopia Kundesone og at du kan koble den til direkte fra datamaskinen din. Husk at denne guiden forutsetter at du har en tom MySQL-database fra begynnelsen. Om din MySQL allerede inneholde tabeller, Kontroller at din Access-database ikke bruker tabeller med samme navn.

Installere Access To MySQL

Access To MySQL er en Windows-applikasjon hvor du kan eksportere innholdet i din .mdb-fil (din Access-database) direkte til din MySQL-database. Den er helt kostnadsfri og kan lastes ned herfra.

Når du har lastet ned .zip-filen og pakket den opp ( med for eksempel WinZip eller IZArc) så starter du installasjonsprogrammet ved å dobbel klikke på den resulterende .exe-filen. Etter installasjonen, start programmet.

Om du under starten av programmet får frem feilmeldingen nedenfor må du først installere en ODBC-driverutine fra MySQL. Følg så guiden lengre nede på denne siden under Installere MySQLs ODBC-diverutine. Om programmet derimot starter som det skal, fortsett bare med neste steg.


warning-after-install.png

Slik ser programmet ut når det starter:access-to-mysql-01.png

Klikk på Next.


access-to-mysql-02.png

Her klikker du på knappen “” til høyre for feltet Filename og leter der direkte på din Access-database (på formatet filnamn.mdb). Om du har denne på din nettserver hos oss må du først laste ned filen til datamaskinen din med et FTP-program.

Klikk på Next.


access-to-mysql-03.png

Her klikker du på alternativet Direct transfer. Fyll deretter i de etterfølgende feltene med verdien nedenfor:

Host
mysqlXXX.loopia.se (Bytt XXX med nummeret på din MySQL-server)
Port
3306
Username
Ditt brukernavn
Password
Ditt passord
Destination database
Navnet på din database, eks mindomen_no
Storage engine
MyISAM

Klikk på Next.


access-to-mysql-04.png

Kontroller at alle tabeller du vil overføre til MySQL-databasen er krysset av.

Klikka på Next.


access-to-mysql-05.png

Kontroller at alle ruter er krysset i som på bildet ovenfor. Dersom du er helt sikker på hva du gjør Kan du korrigere disse.

Klikk på Run Now.


access-to-mysql-06.png

All data fra din Access-database har nå blitt flyttet inn i din MySQL-database.

Oppdatere din ASP-side

For å la din ASP-side bruke den nyoppdaterte MySQL databasen istedenfor den gamle Access-databasen, må du først oppdatere din connection string. Dette gjør du som følgende (klikk  her for instruksjoner for ASP.NET):

En connection string for Access ser ut som følger:

Dim connection_string
connection_string =
    "Provider=Microsoft.Jet.OLEDB.4.0;" &
    "Data Source=" & Server.Mappath("databas.mdb") & ";" &
    "User Id=brukernavn;" &
    "Password=passord;"

Bytt ut den mot følgende:

Dim connection_string
connection_string = "Driver={MySQL ODBC 5.1 Driver};" &
 "Server=mysql117.loopia.se;" &
 "Port=3306;" &
 "Option=131072;" &
 "Stmt=;" &
 "Database=mindomen_no;" &
 "Uid=brukernavn;" &
 "Pwd=passord"

Husk at connection-strengen så må på en og samme rad og bare er oppdelt på flere felt her for å få plass på bredden . Det vil si alt fra og med rad to i hvert kodeeksempel skal stå på samme rad.

Det som du må legge til i den nye connection-strengen er altså server navnet til din MySQL-server( i eksempelet ovenfor mysql117.loopia.se), navnet på din database (i eksempelet over mindomen_no), ditt brukernavn og passordet ditt.

Om du har connection-strenger i flere filer må alle oppdateres. Når dette er klart og du lagrer filen din og laster dem opp til FTP-kontoen din så kommer nettsiden til å være MySQL-drevet isteden for Access-drevet.

Gratulerer!

Oppdatere din ASP.NET-side

Oppdatering av koden ASP.NET er litt mer kranglete an i ASP. Legg merke til at alle koder nedenfor baseres på  eksempelkoden vi har tilgjengelig her i supportdatabasen for kobling til Access eller MySQL. For en bedre forståelse av hva koden nedenfor gjør kan du laste ned de eksemplene og lese igjennom koden

Først må du bytte ut følgende namepace:

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

… och erstatte det med følgende:

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

Deretter er det selve Page_Load()-metoden som må oppdateres. I din kode for kobling til Access burde denne se ut mer eller mindre slik ut:

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;
}

Denne koden skal du bytte med følgende kode (noter at tegnet \ innebærer at raden ikke skal rad brytes):

public void Page_Load(object Sender, EventArgs E) {
  MySql.Data.MySqlClient.MySqlConnection conn;
  string myConnectionString;
  string strResult = "Anslutningen lyckades.";
   
  myConnectionString = \
    "server=mysql.dindomen.no;uid=dindomen_no@l123123; \
    pwd=XXX;database=dindomen_no;";
  
  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;
}

Metode erklæringen GetDBError() skal du erstatte fra dette:

public string GetDBError(OleDbException e) {

… til dette:

public string GetDBError(Exception e) {

Når dette er klart og du lagrer filene dine og laster dem opp til din FTP-konto så kommer nettsiden din til å være MySQL-drevet isteden for Access-drevet.

Gratulerer!

Installere MySQLs ODBC-drivrutine

For at programmet Access To MySQL skal kunne koble til din MySQL-database hos Loopia så trenger man en ODBC-drivrutine. Om du mangler denne kan du laste den ned fra MySQL på denne adressen.

Når du lagrer .msi-arkivet på din datamaskin, dobbel klikk så på filen for å starte installasjonsprogrammet. Du blir da møtt av dette vinduet:
odbc-install-01.png

Klikk på Next.


odbc-install-02.png

Velg alternativet Typical og klikk på Next.


odbc-install-03.png

Klikk på Install.


odbc-install-04.png

Drivrutinen installeres nå.


odbc-install-05.png

Alt klart. Klikk på Finish for å koble installasjonsprogrammet.

Var denne artikkelen til hjelp?

Related Articles