MySQL Datenbank hochladen - wohin?

BillyBlue

New Member
Hallo,
wenn ich via Plesk auf dem 1und1 VServer eine MySQL-DB erzeuge und entsprechende Rechte vergebe, wo finde ich diese dann auf dem Server?

Ich würde diese gerne mit einer bereits auf meinem Rechner gefüllten MySQL-DB ersetzen/überschreiben - das sollte doch gehen, oder?

Vielen Dank!
- bb
 
Entsprechende Datenbank auf dem alten Rechner mittels mysqldump exportieren, und auf dem Zielrechner via mysql in die entsprechende Datenbank importieren. Beides geht auch mit phpmyadmin wie djrick schon gesagt hat.
 
Einfach die Datenbank in eine File dumpen und diese dann auf dem neuen Server einspielen.
Zum dumpen:
Code:
mysql -h localhost -uroot -ppasswort datenbankname > filename.sql
Zum einspielen auf dem neuen Server:
Code:
mysql -h localhost -uroot -ppasswort datenbankname < filename.sql

Ein paar Kleinigkeiten gilt es zu beachten:
- die Syntax kann manchmal ein wenig verschieden sein, auf manchen Systemen muss man Leerzeichen verwenden auf anderen wiederum nicht (-uroot oder -u root, bzw. -ppasswort oder -p passwort), ist zumindest mir z.b. auf älteren Red Hat System untergekommen (Leerzeichen benötigt), auf Debian-basierten Systemen geht es üblicherweise ohne Leerzeichen.

- falls auf dem neuen Server der Name der Datenbank ein anderer ist als auf dem alten Server müssen in der .sql File die "CREATE DATABASE" bzw. "USE DATABASE" Anweisungen gelöscht werden.
 
...phpmyadmin? :confused:

Da bekomme ich dann folgenden Fehler von meinem Server:

Code:
SQL-Befehl:

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;

/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;

/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;

/*!40101 SET NAMES utf8 */;

--
-- Datenbank: `productsDB`
--
CREATE DATABASE  `productsDB` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;


MySQL meldet: 

#1044 - Access denied for user 'username'@'%' to database 'productsDB'


Und das obwohl der Benutzer und das PW auf beiden Rechnern gleich sind -.-
 
Hat der von dir verwendete User vielleicht nicht die Rechte um die Datenbank anzulegen? Oder existiert die Datenbank bereits?
 
Also ich gehe innerhalb von Plesk auf die betroffene Domain, dann auf Datenbank und dort kann ich dann eine Datenbank anlegen und den passenden Benutzer (beides 1:1 wie auf dem Home-Rechner).

Wenn ich nun die komplette Datenbank exportiere und via PHPAdmin importieren möchte, dann sagt er mir, dass die DB "information_schema" und "mysql" schon vorhanden sind.

Also exportiere ich bei mir nur "productsDB" und versuche diese zu importieren, dann kommt dieser Fehler.

Klar, es sieht wirklich so aus, als wäre es ein Rechteproblem. Doch wenn ich von Plesk aus direkt über den Admin reingehe, dann kann ich doch gar nicht für diesen bestimmten User die DB anlegen/bearbeiten, oder?
 
Code:
CREATE DATABASE  `productsDB` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
Kommentiere das mal aus, und das warscheinlich nachfolgende
Code:
use productsDB
auch.

Und dann importiere nochmal.
 
Wunderbar, das hat geklappt - vielen Dank!

Kannst du mir erklären, was das genau für Auswirkungen hat, wenn man diese beiden Zeilen entfernt und wieso das dann überhaupt erst da drin ist?

Danke :)
- bb
 
Hi,
meistens ist das am Anfang der Datei, wenn man beim Export mit phpmyadmin nicht die Datenbank ausgewählt hat. Also wenn man beispielsweise in phpmyadmin ist, und ohne die Datenbank auszuwählen, auf Exportieren klickt, und da erst die Datenbank auswählt. Wenn man vorher die Datenbank auswählt, und dann beim Exportieren nur die einzelnen Tabellen der Datenbank exportiert, findet man Create und Use nicht im Export.

Was Create und Use bewirken sollte klar sein ( Create erstellt eine Datenbank, Use sagt benutze sie für den Import ).
Aber ein Pleskphpmyadmin-User hat nicht das Recht eine Datenbank zu erstellen. Und er hat auch nicht das Recht eine andere Datenbank zu benutzen. Ihm wurde das Recht auf eine bestimmte Datenbank zugewiesen, wo du dann deine Daten importieren musst, und die du auch nutzen musst.

Mit freundlichen Grüßen
Flobbie
 
Das passt zwar hier nicht rein, aber vielleicht weiss es dennoch jemand: Ich habe hier eine Flexanwendung welche lokal auf dem Computer ohne Probleme auf eine testDB zugreift und darin auf die Tabelle products. Wenn ich nun auf dem Server via Plesk die testDB mit dem selben User und den entsprechenden Rechten einrichte und die Flex-Anwendung ausführe, läuft alles bis zu dem Moment, wo ich einen Eintrag erzeugen möchte, dann kommt "No database selected". Ich hab schon einiges ausprobiert und an den automatisch erzeugten PHPs rumgespielt, aber es geht ums verrecken nicht.

PHP:
<?php
/**
 * connection settings
 * replace with your own hostname, database, username and password 
 */
$hostname_conn = "localhost";
$database_conn = "testDB";
$username_conn = "user";
$password_conn = "password";
$conn = mysql_pconnect($hostname_conn, $username_conn, $password_conn) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database_conn, $conn);
mysql_query("SET NAMES 'utf8'");
?>


Vielleicht hat jemand von euch eine Idee!?
 
Frag mal den Status von mysql_select_db(....) ab, und ruf ggfs. mysql_error() auf, das liefert eine bessere Fehlermeldung, aus der Du vielleicht schlauer wirst...
 
Hallo,
so jetzt kam ich dazu mir das anzuschauen und habe folgenden Code probiert:

PHP:
<?php

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Not connected : ' . mysql_error());
}

// make foo the current db
$db_selected = mysql_select_db('foo', $link);
if (!$db_selected) {
    die ('Can\'t use foo : ' . mysql_error());
}
?>

Natürlich angepasst auf meine DB ;)

Da kommt keine Fehlermeldung -.-
 
Wenn keine Fehlermeldung kommt, hat alles bis dahin funktioniert. Dann kannst Du ja jetzt noch den query-Teil anhängen ;)
 
Back
Top