MariaDB .sql Datei öffnen

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
earloop
User
Beiträge: 26
Registriert: Sonntag 11. Oktober 2020, 13:54

Samstag 3. April 2021, 20:45

Hi,
ich würde gerne eine .sql Datei (MariaDB) in Python öffnen.
Normalerweise greife ich so auf meine Datenbank zu:

Code: Alles auswählen

import sqlalchemy as db
import pandas as pd

metadata = db.MetaData()

engine = db.create_engine('mysql+mysqldb://USER:PW@IP/DBNAME')
con = engine.connect()

df = pd.read_sql_table('TABLENAME', con=engine)
Wie mache ich das wenn die Datenbank nicht auf einem Server liegt, sondern ich nur eine locale MYDB.sql Datei habe? Muss auch nicht unbedingt mit sqlalchemy sein.

Wenn ich das ändere zu

Code: Alles auswählen

import sqlalchemy as db
import pandas as pd

metadata = db.MetaData()

engine = db.create_engine('mysql+mysqldb://USER:PW@MYDB.sql/DBNAME')
con = engine.connect()

df = pd.read_sql_table('TABLENAME', con=engine)
kommt eine Fehlermeldung

Code: Alles auswählen

OperationalError: (MySQLdb._exceptions.OperationalError) (2005, "Unknown MySQL server host 'MYDB.sql' (22)")
(Background on this error at: http://sqlalche.me/e/13/e3q8)
Benutzeravatar
__blackjack__
User
Beiträge: 8572
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Samstag 3. April 2021, 22:59

@earloop: Die Datei würde man ausserhalb von Python erst einmal in eine Datenbank einspielen. Das ist ja (normalerweise) SQL-Quelltext der von der Datenbank ausgeführt werden muss.
“Dawn, n.: The time when men of reason go to bed.” — Ambrose Bierce, “The Devil's Dictionary”
earloop
User
Beiträge: 26
Registriert: Sonntag 11. Oktober 2020, 13:54

Samstag 3. April 2021, 23:39

und wie funktioniert das?
Die .sql Datei habe ich mit

Code: Alles auswählen

mysqldump -u root -p MYDB > MYDB.sql
erzeugt.
nezzcarth
User
Beiträge: 1288
Registriert: Samstag 16. April 2011, 12:47

Sonntag 4. April 2021, 11:42

Du musst dir lokal einen MariaDB-Server aufsetzen und die Daten dort dann mit den entsprechenden Befehlen einspielen (s. z. B. https://www.digitalocean.com/community/ ... or-mariadb).
Antworten