Wie führe ich ein Skript auf / in einer MySQL-Datenbank?
-
20-09-2019 - |
Frage
Ich habe eine MySQL-Datenbank MySQL Workbench erstellt. Es hat ca. 20 Tische. Ich kann nicht herausfinden, wie Skripte auf der Datenbank ausgeführt werden.
Grundsätzlich möchte ich eine Datenbankerstellung Skript machen, die mir erlauben, zu meiner Datenbank auf einem anderen MySQL-Server zu erstellen.
Lösung
create database mydatabase;
grant all on mydatabase.* to 'myuser'@'%' identified by 'mypasswd';
create table mytable (
id int not null auto_increment,
myfield varchar(255) not null default ''
);
etc ...
Setzen Sie, dass in einer Datei namens mydbcreate.sql und run (von der Kommandozeile)
mysql -u <myuser> -p < mydbcreate.sql
Andere Tipps
Die Kenntnis der mysql-Dienstprogramme Befehlszeile ist nützlich und wichtig, aber für die Ausführung gemeinsamer Aufgaben verwenden, um eine Datenbank-Administration-Tool wie phpMyAdmin, zu erstellen und Datenbanken zu verwalten. Diese Tools machen es extrem einfach & browse Tabellen zu erstellen, erstellen Export-Skripts (eine Datei mit allen Abfragen auf Tabellen zu erstellen, Daten einfügen, etc ...) und andere große Dinge.
phpMyAdmin ist groß, läuft in und LAMP-Umgebung, ist kostenlos und einfach zu bedienen.
http://www.phpmyadmin.net/home_page/index.php
Screeny einen db in phpMyAdmin Export (abgeschnitten Schuss) alt text http://www.typolight.org/tl_files/images/documentation/sql-export.jpg
Hier sind einige Hinweise:
mysqldump -u [username] -p[password] [databasename] > [backupfile.sql]
Und
mysql -u [username] -p[password] [database_to_restore] < [backupfile.sql]
Es hat eine Datei mit Strukturen und Daten erzeugen. Die zweite Zeile nimmt die Daten aus der Datei in die Datenbank.
Es gibt keinen Raum zwischen -p und dem Passwort ein. Es wäre besser, das Passwort nicht in Ihrem Befehl zu setzen, wie dies in Ihrem .bash_history landen kann. Wenn Sie das Kennwort weglassen wird es aufgefordert werden:
mysqldump -u [username] -p [databasename] > [backupfile.sql]
Und
mysql -u [username] -p [database_to_restore] < [backupfile.sql]
Vielleicht, was Sie brauchen, ist zu wissen, dass diese Aussagen DDL genannt werden? Dann können Sie zu jeder MySQL-Website gehen und fragen, wie DDL zu generieren? Nicht snarky zu sein, nur zu sagen. . .
Auch Sie können versuchen, diese:
Verwendung mysqldump von der Kommandozeile mit der --no-Datenoption. Bitten Sie um Hilfe, wenn weitere Informationen benötigen. Aber ein einfaches Beispiel wäre:
$ mysqldump -u{username} -p{password} {dbname} --no-data
(natürlich ohne die geschweiften Klammern)
Sie haben zwei Möglichkeiten.
- Exportieren ein Skript erstellen, die Sie speichern und / oder beliebig laufen auf jedem MySQL-Server
- Synchronisieren mit einem bestimmten MySQL-Server direkt.
# 1 Verwenden Sie den folgenden Menübefehl
File >> Export >> Forward Engineer SQL CREATE Script...
Von hier aus können Sie ein Programm wie MySQL GUI Tools verwenden oder die anderen Antworten in diesem Thread finden Sie in dem generierten SQL-Skript von der Befehlszeile zu importieren.
# 2 Verwenden Sie den folgenden Menübefehl
Database >> Forward Engineer...
- or -
Database >> Synchronize Model...
Bevor Sie eine dieser zu tun, möchten Sie vielleicht eine Verbindung aufzubauen zunächst über
Database >> Manage Connections...
Wichtig! Für beide Optionen, stellen Sie sicher, dass Sie genau auf jede Option in den Aufforderungen zur Verfügung aussehen - kleine Einstellungen eine große Veränderung in der Ausgabe machen