SQL Mysql Datenbank und ein Benutzer mit den Rechten via Script erstellen.....

Seiyaru2208

Captain
Registriert
Apr. 2008
Beiträge
3.112
Hallo Jungs,

ich hoffe ich habe das richtige Unterforum gewählt....

Ich will wie es oben schon erklärt ist eine Mysql Datenbank erstellen durch das ausführen eines Scriptes.....

Grundlegend kann ich mir schon vorstellen wie ich das umsetzte allerdings habe ich keinen Ansatz wie ich via Script-Befehl eine Anmeldung an die Datenbank hinbekomme.... (sprich irgendwie muss ja mysql gestart werden und als root angemeldet werden...)

Könnte mir jemand vieleicht ein Denkanstoß geben?

Ich arbeite mich derzeit in diese Marterie hinein ich hoffe das ihr mir helfen könnt das ich nicht bei den ersten Sachen schon scheitere ^^
 
Hi,

mysql -u [BENUTZERNAME] -p [PASSWORT]

meinst du sowas in die Richtung? Ein bisschen mehr Infos wären gut. Willst du das Skript Remote ausführen oder meldest du dich per SSH auf dem Server an oder arbeitest du direkt auf der Maschine?

VG,
Mad
 
Du schreibst einfach in eine Zeile:
mysql -u [user] -p[pass] -e "[mysql commands]"
und das [mysql commands] ersetzt du durch dein gewünschtes Kommando

Achtung zwischen p und [pass] gehört kein Leerzeichen.
 
Ich arbeite direkt auf den Server... Bzw. per ssh.....

Im Grunde will ich das Script starten und die Datenbank samt Nutzer soll erstellt sein ^^
 
Problem an der Sache:
- nur ein User mit Root-Rechten kann (üblicherweise) Tabellen erstellen und Nutzer anlegen
- ein Script muss Username & Passwort im Klartext enthalten -> in dem Falle also: Root+RootPW. Keine SEHR gute Idee.
 
Ich habe mir das jetzt so gedacht....

#!/bin/sh

#Mysql Installieren

apt-get install mysql-server mysql-client (wie kann ich per Scrip sagen das er ein vordefiniertes Passwort für die SQL-Datenbank nimmt? Als Beispiel test123?)

#Zugriff auf Mysql

mysql -u [root] -p[test123]

#Datenbank erstellen

CREATE DATABASE Test123 CHARACTER SET UTF8;

#Benutzer erstellen

CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'qwe12345';

#Rechte Vergeben

GRANT ALL PRIVILEGES ON testuser.* TO 'testuser'@'localhost';

#von MYSQL abmelden

Quit;

Kann das so funktionieren oder liege ich völlig daneben?? Ich hoffe ihr könnt mir ein Tipp geben =)
 
Das scheitert schon am Installer. Mir fällt kein Weg ein, wie du die Schritte automatisieren könntest. Aber anders gefragt: wozu soll das gut sein?
 
Daaron schrieb:
Das scheitert schon am Installer. Mir fällt kein Weg ein, wie du die Schritte automatisieren könntest. Aber anders gefragt: wozu soll das gut sein?

Ich will mir einfach die Arbeit ersparen... bei einer GUI kann ich ja einfach Copy an Paste machen was bei einen Server ja leider nicht so einfach ist. Sprich wenn ich mit einer GUI arbeite habe ich eine TxT datei wo schon alle Befehle geschrieben sind und diese kopiere ich ganz einfach in das Terminal. So verhinder ich "schussel-Fehler" beim Vertippen und es geht um einiges schneller..... Die SQL-Datenbank ist das kleinste was installiert werden muss da wäre es toll wenn man es automatisieren könnte.....
 
Installierst du Server im Sekundentakt? Und auch bei Servern kann man mit Copy/Paste arbeiten. Mach ich permanent, jede bessere Shell unterstützt sowas.
 
Daaron schrieb:
Installierst du Server im Sekundentakt? Und auch bei Servern kann man mit Copy/Paste arbeiten. Mach ich permanent, jede bessere Shell unterstützt sowas.

Ne nicht ganz aber es geht schon in die Richtung sagen wir das mal so ^^

ich habe da kein Ansatz wie ich auf eine txt zugreifen den inhalt copieren und dann in eine andere datei einfügen soll. Kannst du mir da ein Tipp geben?
 
Hi,

ich habe das vor ewigen Zeiten einmal so gelöst:

Code:
##Festlegen des MySQL-Passworts in der DebConf-Datenbank
echo "Festlegen des MySQL-Passworts in der DebConf-Datenbank"
echo mysql-server mysql-server/root_password password PASSWORD | sudo debconf-set-selections
echo mysql-server mysql-server/root_password_again password PASSWORD | sudo debconf-set-selections

Code:
##Installation von MySQL
echo "Installation von MySQL"
sudo apt-get -q -y install mysql-server
echo "Bitte warten. MySQL-Passwort wird gesetzt..."
sleep 5
mysql -u root -pPASSWORD -e <<EOSQL "UPDATE mysql.user SET Password=PASSWORD('HIERDASECHTEPASSWORT') WHERE User='root'; FLUSH PRIVILEGES;"
EOSQL
echo "Abgeschlossen."

Code:
##MySQL Datenbank einspielen
echo "MySQL Datenbank einspielen"
mysql --user=root --password=HIERDASECHTEPASSWORT< datenbank/datenbankdump.sql

Vielleicht hilft dir das.

VG,
Mad
 
Zurück
Oben