Wenn man auf einem Server eine bestehende MySQL Datenbank einspielen möchte, so kann man natürlich auf Softwarepakete wie phpMyAdmin zurückgreifen. Problematisch wird das ganze immer dann, wenn die einzuspielende Datenbank größer ist oder auf dem Server kein Webserver mit installiertem PHP vorhanden ist.
Für solche Fälle gibt es die MySQL Kommandozeile („mysql“). Existiert die Datenbank noch nicht, so sollte im ersten Schritt mittels „mysql“ eine Datenbank und ein Nutzer erstellt werden:
mysql> CREATE DATABASE datenbankname; mysql> GRANT ALL PRIVILEGES ON datenbankname.* TO nutzername@localhost IDENTIFIED BY 'geheim'; mysql> quit
Anschließend kann der Dump in die neu angelegte Datenbank eingespielt werden:
mysql -u root -p<Passwort> datenbankname < dump.sql
Alternativ kann die Datenbank anstatt mit „root“ auch mit dem neu angelegten Nutzer importiert werden.
Pingback: Nginx Server mit PHP und MySQL unter Ubuntu aufsetzen | seeseekey.net
Wenn man mal das Passwort nicht zur Hand hat oder nicht eingeben will gibt es übrigens noch eine nette (afaik undokumentierte Möglichkeit) mysql aufzurufen.
Man Konfigurations-daten in einer .cnf-Datei hinterlegen, die ungefähr so aussieht:
#myconf.cnf
[client]
host = localhost
user = root
password = 87sadfghdsgh4
socket = /var/run/mysqld/mysqld.sock
Gerade in skriptgesteuerten Mysql-operationen kann der Aufruf nun so aussehen:
mysql --defaults-extra-file=myconf.cnf datenbankname < dump.sql
Auf Debians kann man für Skripte mit root-Rechten auch gleich das hier nehmen:
mysql --defaults-extra-file=/etc/mysql/debian.cnf ...
Das ganze geht natürlich genau so mit mysqldump.
Pingback: Nginx Server mit PHP und MySQL unter Ubuntu aufsetzen | seeseekey.net