staging.inyokaproject.org

Du kannst auf dieses Thema nicht antworten, da es gesperrt wurde.

mariadb - Anlegen einer Tabelle [Bash]

Status: Gelöst | Ubuntu-Version: Ubuntu
Antworten |

msebastian100

Avatar von msebastian100

Anmeldungsdatum:
13. Oktober 2016

Beiträge: 36

Hallo, ich habe versuche eine Mysql-Tabelle via Bash Script zu erstellen MfG

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

#!/bin/bash

if [ -f /root/.my.cnf ]; then
        echo "Datei Exestiert";
else
 echo "Bitte gebe das root MySQL password ein!";
        read -p dbuser;
 echo "Hinweis: Das Password wird unsichtbar eingegeben!"
 read -s passwd;
        echo -e "[client]" >> /root/.my.cnf;
 echo -e "user=$dbuser\npassword=$passwd" >> /root/.my.cnf;
        exit;
fi

mysql -e "SHOW DATABASES; /*\!40100 DEFAULT CHARACTER SET utf8 */;"
echo "Waehlen sie die Datenbank aus: ";
read dbw
mysql -e "use $dbw;"
echo "Gibt den Namen der Tabelle ein: ";
read tabellennamen
mysql -e "CREATE TABLE IF NOT EXISTS $tabellennamen(id VARCHAR(255) NOT NULL,username VARCHAR(255) NOT NULL,password VARCHAR(255) NOT NULL,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,last_login TIMESTAMP)"
echo "Tabelle "$tabellennamen" wurde angelegt! ";


fehler:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
root@basti-debianserver:~# ./datenbank1
Datei Exestiert
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| phpmyadmin         |
| test123            |
+--------------------+
Waehlen sie die Datenbank aus: 
test123
Gibt den Namen der Tabelle ein: 
test12345
ERROR 1046 (3D000) at line 1: No database selected
Tabelle test12345 wurde angelegt!

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4212

Naja, Du startest zum Anlegen der Tabelle eine neue Session. Du müsstest das use $dbw und das create table in einer einzigen Session machen. Du könntest beim Aufruf des mysql aber auch die Datenbank einfach als Parameter mitgeben:

mysql -D $dbw ....

msebastian100

(Themenstarter)
Avatar von msebastian100

Anmeldungsdatum:
13. Oktober 2016

Beiträge: 36

Hallo Doc_Symbiosis,

Vielen Dank für deine Antwort. Das hat super funktioniert, hätte ich den Forum-Beitrag hier mal ehr geschrieben, das hätte mir 2 Tage erfolglose google Suche erspart.

Lösung:

1
mysql -D $dbw -e "CREATE TABLE ..."

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4212

Ok, sehr schön! Markiere das nächste Mal das Thema noch als gelöst, wenn es erledigt ist. Das habe ich jetzt einfach mal gemacht.

Antworten |