Show je... > Scripts

.mdb to mysql (linux)

(1/1)

White Blizzard:
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

--- Code: ---
$ sudo apt-get install mdbtools

--- Einde van code ---

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

--- Code: ---
#!/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

--- Einde van code ---

Voer de code als volgt uit:

--- Code: ---
sh mdb2mysql.sh <eenmdb.mdb> <mysqldatabase> <mysqlgebruiker> <mysqlwachtwoord>

--- Einde van code ---

Tadaa je mdb file is nu netjes in een mysql database geplaatst.

Robin:
... 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

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?

Robin:

--- 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?
--- Einde van citaat ---
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...

Navigatie

[0] Berichtenindex

Naar de volledige versie