sql daten per script uploaden

Bash, Shell, PHP, Python, Perl, CGI
1979mark
Posts: 11
Joined: 2007-01-25 09:45

sql daten per script uploaden

Post by 1979mark » 2009-08-31 10:01

Hi,

ich hoffe ich bin in diesem Bereich hier richtig.

Ich möchte ein kleines script erstellen

#!/bin/sh
mysql -h localhost -S /tmp/mysql5.sock -u MARKDBUSER -pMARK1111 MARKDB < data.sql


Aber wie kann ich es realisieren, das ich nach den fettgeschriebenen Dingen (user, pw und Datenbak) gefragt werde und diese dann eingeben muss.


Gruß
Mark

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: sql daten per script uploaden

Post by Joe User » 2009-08-31 10:21

PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

1979mark
Posts: 11
Joined: 2007-01-25 09:45

Re: sql daten per script uploaden

Post by 1979mark » 2009-08-31 10:24

HiJoe User,

vielen lieben Dank für die schnelle Antwort.
Aber ich galube ich lasse das besserr, das sieht mir zu kompliziert aus.


MArk

1979mark
Posts: 11
Joined: 2007-01-25 09:45

Re: sql daten per script uploaden

Post by 1979mark » 2009-08-31 10:28

Oder ist das so richtig


#!/bin/sh
echo -n "Usernamen eingeben 'var1': "
echo -n "Passwort eingeben 'var2': "
echo -n "Dtenbanknamen eingeben 'var3': "

mysql -h localhost -S /tmp/mysql5.sock -u $var2 -p$var2 $var3 < data.sql




Gruß
Mark

Roger Wilco
Administrator
Administrator
Posts: 5924
Joined: 2004-05-23 12:53

Re: sql daten per script uploaden

Post by Roger Wilco » 2009-08-31 12:09

1979mark wrote:Oder ist das so richtig

Nein. Da fehlt der Aufruf von read(1p).

1979mark
Posts: 11
Joined: 2007-01-25 09:45

Re: sql daten per script uploaden

Post by 1979mark » 2009-08-31 17:26

Hi,

sorry, aber könnte mir da jemand helfen, ich weiß nicht genau was ich machen muss.

Danke
Mark

Roger Wilco
Administrator
Administrator
Posts: 5924
Joined: 2004-05-23 12:53

Re: sql daten per script uploaden

Post by Roger Wilco » 2009-08-31 18:15

Das steht doch schön mit Beispiel in der Manpage zu read(1p):

Code: Select all

$ read FOO; echo "Eingabe war: $FOO"
Testeingabe
Eingabe war: Testeingabe

1979mark
Posts: 11
Joined: 2007-01-25 09:45

Re: sql daten per script uploaden

Post by 1979mark » 2009-08-31 18:23

Hi,

sorry das ich hier nochmals nerve aber ich versteh leider nicht wie ich den Befehl nutzen soll in meinem Beispiel.

Wäre es zuviel verlangt, wenn mir jemand das richtige script nennen kann?

#!/bin/sh
echo -n "Usernamen eingeben 'var1': "
echo -n "Passwort eingeben 'var2': "
echo -n "Dtenbanknamen eingeben 'var3': "

mysql -h localhost -S /tmp/mysql5.sock -u $var2 -p$var2 $var3 < data.sql

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: sql daten per script uploaden

Post by Joe User » 2009-08-31 21:34

Quick&Dirty, eventuelle Bugs bitte selbst fixen:

Code: Select all

#!/bin/bash

LANG=C LC_ALL=C TZ=UTC0
export LANG LC_ALL TZ

function read_prompt() {
  read -p "$(echo -en "E[1;37m${1}E[0m " >&2)" "${2:-REPLY}"
  until [ -z $(echo "${2:-REPLY}" | tr -d '[[:print:]]') ]
  do
    show_warn "non-printable char(s) detected! Please retry...n"
    read_prompt "${1}" "${2}"
  done
  return
}

function read_passwd() {
  read -s -p "$(echo -en "E[1;37m${1}E[0m " >&2)" "${2:-REPLY}"
  until [ -z $(echo "${2:-REPLY}" | tr -d '[[:print:]]') ]
  do
    show_warn "non-printable char(s) detected! Please retry...n"
    read_prompt "${1}" "${2}"
  done
  return
}

function show_text() {
  echo -en "E[1;37m${1}E[0m" >&2
  return
}

function show_info() {
  echo -en "E[1;32m${1}E[0m" >&2
  return
}

function show_warn() {
  echo -en "E[1;33m${1}E[0m" >&2
  return
}

function show_error() {
  echo -en "E[1;31m${1}E[0m" >&2
  return
}

function root_only() {
  if [ "${UID}" != "0" ] || [ "${EUID}" != "0" ]
  then
    show_error "You must be root to run this script!n"
  fi
  return
}

function import_db() {
  local username password database
  show_info "Please enter your database usernamen"
  read_prompt "Username:"
  if [ -z "${username}" ]
  then
    show_error "aborting...n"
    exit 1
  fi
  show_info "Please enter your database passwordn"
  read_passwd "Password:"
  if [ -z "${password}" ]
  then
    show_error "aborting...n"
    exit 1
  fi
  show_info "Please enter the database to importn"
  read_prompt "Database:"
  if [ -z "${database}" ]
  then
    show_error "aborting...n"
    exit 1
  fi
  mysql -u${username} -p${password} ${database} < ${database}.sql
  return
}

root_only
import_db

exit 0

Als Hausaufgabe und Entschädigung für meine Mühen, darfst Du dieses Script mit vernünftigen Kommentaren versehen und zur weiteren Kontrolle hier posten, danke.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

1979mark
Posts: 11
Joined: 2007-01-25 09:45

Re: sql daten per script uploaden

Post by 1979mark » 2009-08-31 23:30

Hi,

danke Dir.

ISt es falsch wenn ich dass so löse?

echo "Host eingeben (localhost): "
read localhost

echo "Socket eingeben (/tmp/mysql5.sock): "
read socket

echo "Usernamen eingeben: "
read username

echo "Passwort eingeben: "
read passwort

echo "Datenbanknamen eingeben: "
read datenbankname

echo $localhost $socket $username $passwort $datenbankname

mysql -h $localhost -S $socket -u $username -p$passwort $datenbankname < data.sql

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: sql daten per script uploaden

Post by Joe User » 2009-09-01 00:33

1979mark wrote:ISt es falsch wenn ich dass so löse?

Nicht zwingend falsch, aber sicherheitstechnisch noch bedenklicher, als mein Quick&Dirty-Script...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.