PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   ***.sql script ansprechen (http://www.selfphp.de/forum/showthread.php?t=19433)

audrey 23.05.2008 11:43:07

***.sql script ansprechen
 
Guten Tag liebe Forumnutzer,

ich hab trotz eifriger Suche keine Lösung für mein Problem gefunden.

Ich versuche über ein shellscript eine MYSQL db anzusprechen, dort angekommen soll eine sql script ausgeführt werden, die zeile sieht so aus:

Code:

mysql  -u dbo**** -p****** db***** db*******.de:3306 < sql_new.sql
Die db wird auch geöffnet jedoch eine Ausführung des scripts findet nicht statt, stattdessen kommt:

Code:

Führe MySQL-Importskript aus...
mysql  Ver 14.12 Distrib 5.0.32, for pc-linux-gnu (i486) using readline 5.2
Copyright (C) 2002 MySQL AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license
Usage: mysql [OPTIONS] [database]
  -?, --help          Display this help and exit.
  -I, --help          Synonym for -?
  --auto-rehash      Enable automatic rehashing. One doesn't need to use
                      'rehash' to get table and field completion, but startup
                      and reconnecting may take a longer time. Disable with
                      --disable-auto-rehash.
  -A, --no-auto-rehash
                      No automatic rehashing. One has to use 'rehash' to get
                      table and field completion. This gives a quicker start of
                      mysql and disables rehashing on reconnect. WARNING:
                      options deprecated; use --d


Habe auch schon alle möglichen Varianten ausprobiert, die alle eigentlich genau das gleiche Ergebnis zeitigen.

Wenn mir da jemand weiterhelfen könnte? das wäre echt nett, danke.

Grüsslis Audrey

nem75 23.05.2008 12:26:12

AW: ***.sql script ansprechen
 
IMHO ist dein Aufruf falsch und sollte so aussehen:
Code:

mysql -h db*******.de:3306 -u dbo**** -p****** db***** < sql_new.sql
Deswegen kriegst du auch die Usage Info für den mysql-Aufruf. Den Port kannst du übrigens weglassen, wenn es eh die 3306 ist.

audrey 23.05.2008 14:10:55

AW: ***.sql script ansprechen
 
Erstmal danke, funktioniert soweit, meine ursprüngliche version sah bis auf -h auch so aus.

Nun bekomme ich die Meldung

Code:

ERROR 1045 (28000) at line 2: Access denied for user 'dbo234118367'@'%' (using password: YES)
zurück, muss in dem script nochmal user + pw rein, um der db zu sagen welcher user das ausführt??

nem75 23.05.2008 15:17:03

AW: ***.sql script ansprechen
 
Nö. Das sieht so aus als würde User und/oder Passwort nicht stimmen.

Poste zur Sicherheit doch noch mal den exakten Aufruf hier, den du benutzt.

audrey 23.05.2008 15:46:38

AW: ***.sql script ansprechen
 
Also ich habe es genauso wie vorgeschlagen gemacht:

Code:

mysql -h db****.de  -u dbo***** -p***** db****** < sql_new.sql

nem75 23.05.2008 17:32:19

AW: ***.sql script ansprechen
 
Kann es sein, dass in deinem Skript (wohl schon ganz am Anfang) in einer Weise auf eine Tabelle zugegriffen wird, für die der User nicht die nötigen Rechte hat? So sieht mir das jedenfalls aus.

audrey 23.05.2008 18:16:35

AW: ***.sql script ansprechen
 
nein das glaube ich nicht, da,

Code:

#! /bin/bash

wget --output-document=import.csv.zip --timeout=3600 "http://*******"
unzip -o import.csv.zip
#kopie nach /tmp ist nötig nur da __load data infile__ funzt
cp -pv *.csv tmp
echo "Führe MySQL-Importskript aus..."
mysql -h db****.de  -u dbo****** -p******* db****** < sql_new.sql

dass script bis zur ERROR 1045 Meldung überhaupt keine Zugriffe auf die db enthält.

Vielleicht liegt es am "load data infile" besser wäre evnt. "load data local infile" ???

nem75 23.05.2008 19:02:07

AW: ***.sql script ansprechen
 
Ich meine dein SQL-Skript, nicht das Bash-Skript. Also die sql_new.sql.

audrey 01.06.2008 20:27:57

AW: ***.sql script ansprechen
 
Hallo nem75,

vielen Dank nochmal für deine Hilfe, läuft inzwischen alles.

Es lag am "LOAD DATA INFILE" mit "LOAD DATA LOCAL INFILE" funktioniert das ganz prächtig.


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:35:00 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.