Auteur Topic: .mdb to mysql (linux)  (gelezen 2685 keer)

0 leden en 1 gast bekijken dit topic.

White Blizzard

  • Actief DigitalPlace Lid
  • **
  • Berichten: 893
  • Karma: 11
    • Bekijk profiel
.mdb to mysql (linux)
« Gepost op: september 18, 2011, 10:29:29 am »
  • [+1]0
  • [-1]0
  • Voor al mijn Linux broeders die net als ik het probleem hebben dat school wil dat ze windows en access gebruiken.

    Wat heb je nodig:
    - mdbtools
    - terminal

    Stap 1:
    installeer mdbtools
    $ sudo apt-get install mdbtools

    Stap 2:
    Gooi deze code in een nieuw documentje en noem het "mdb2mysql.sh"
    #!/bin/sh


    if [ $# -ne 4 ]; then
     echo "usage: $0 msaccess.mdb mysqldb mysqluser mysqlpass"
     exit
    fi

    MDB_FILE=$1
    MYSQL_DBNAME=$2
    MYSQL_USER=$3
    MYSQL_PASS=$4

    MYSQL_IMPORT=/tmp/`basename $MDB_FILE .mdb`.sql

    >$MYSQL_IMPORT

    # create database
    echo "DROP DATABASE IF EXISTS $MYSQL_DBNAME;" >> $MYSQL_IMPORT
    echo "CREATE DATABASE $MYSQL_DBNAME; " >> $MYSQL_IMPORT
    echo "USE $MYSQL_DBNAME; " >> $MYSQL_IMPORT

    # import table structures with mysql data types
    mdb-schema -S $MDB_FILE mysql >> $MYSQL_IMPORT

    perl -p -i -e 's/-----*/--/g' $MYSQL_IMPORT
    perl -p -i -e 's/DROP TABLE (.*)/DROP TABLE IF EXISTS $1/gi' $MYSQL_IMPORT

    # Fix the Variables
    #perl -p -i -e 's/Text/VARCHAR/g' $MYSQL_IMPORT
    #perl -p -i -e 's/Long Integer/INT(11)/g' $MYSQL_IMPORT

    # import data
    for TABLE in `mdb-tables $MDB_FILE`
    do
      mdb-export -R';' -I $MDB_FILE  $TABLE >> $MYSQL_IMPORT

    done

    mysql -u$MYSQL_USER -p$MYSQL_PASS < $MYSQL_IMPORT

    if [ $? -ne 0 ]; then
      echo ""
      echo "Fix the script at $MYSQL_IMPORT"
      echo ""
      echo "Run it using following command"
      echo "mysql -u$MYSQL_USER -p$MYSQL_PASS < $MYSQL_IMPORT"
    else
      echo ""
      echo "DONE. Script used is: $MYSQL_IMPORT"
      echo ""
      echo "Remove it if you no longer need it"
    fi

    Voer de code als volgt uit:
    sh mdb2mysql.sh <eenmdb.mdb> <mysqldatabase> <mysqlgebruiker> <mysqlwachtwoord>

    Tadaa je mdb file is nu netjes in een mysql database geplaatst.
    « Laatst bewerkt op: januari 01, 1970, 01:00:00 am door Guest »

    Robin

    • Administrator
    • DigitalPlace Guru
    • *****
    • Berichten: 3158
    • Karma: 145
      • Bekijk profiel
      • http://www.robinj.be/
    Re: .mdb to mysql (linux)
    « Reactie #1 Gepost op: oktober 23, 2011, 06:24:54 pm »
  • [+1]0
  • [-1]0
  • ... Als dit werkt ben je mijn god... Dan krijg ik eindelijk geen nul meer op taken omdat ik weiger een computer te vernaggelen met Windows.  :toppie:
    --Edit--
    Ow shit verkeerd gelezen xD Heb je ook iets om het omgekeerde te doen toevallig? :p
    « Laatst bewerkt op: januari 01, 1970, 01:00:00 am door Guest »
    >><<

    White Blizzard

    • Actief DigitalPlace Lid
    • **
    • Berichten: 893
    • Karma: 11
      • Bekijk profiel
    Re: .mdb to mysql (linux)
    « Reactie #2 Gepost op: oktober 23, 2011, 06:27:25 pm »
  • [+1]0
  • [-1]0
  • Bij het omgekeerde maak je dus JUIST een windows document dat is dus je pc vernaggelen met windows.

    Dit is windows naar linux dat is wat je wilt (of je praat jezelf tegen...).
    Andersom heb ik geen flauw idee waarom zou je van mysql naar mdb willen?
    « Laatst bewerkt op: januari 01, 1970, 01:00:00 am door Guest »

    Robin

    • Administrator
    • DigitalPlace Guru
    • *****
    • Berichten: 3158
    • Karma: 145
      • Bekijk profiel
      • http://www.robinj.be/
    Re: .mdb to mysql (linux)
    « Reactie #3 Gepost op: oktober 23, 2011, 06:29:51 pm »
  • [+1]0
  • [-1]0
  • Citaat van: "White Blizzard"
    Bij het omgekeerde maak je dus JUIST een windows document dat is dus je pc vernaggelen met windows.

    Dit is windows naar linux dat is wat je wilt (of je praat jezelf tegen...).
    Andersom heb ik geen flauw idee waarom zou je van mysql naar mdb willen?
    Nou, als je een taak thuis moet maken en je leraar wil het ontvangen in MS Access formaat heb je dus wel een probleem he :p Hij weet niet hoe die een CSV bestandje moet importeren en hijs te lui om het uit te zoeken dus ja...
    « Laatst bewerkt op: januari 01, 1970, 01:00:00 am door Guest »
    >><<