Datenbank mit 45MB importieren...

BartTheDevil89

Devilution Media
ID: 87739
L
2 Mai 2006
3.960
103
Hallo,

ich möchte gern eine einige Tabellen mit in eine Datenbank importieren. Allerdings ist die Datei 45MB groß und im Format .gz! Genauer gesagt ist es dieses Datebank hier: https://sourceforge.net/project/showfiles.php?group_id=132421 (Data)

Aber wie bekomm ich das jetzt hoch? Über mysqldumper kann ich ja nur komplette Datenbanken backupen und widerherstellen, ich möchte ja aber einfach diese Tabellen noch hinzufügen. Und über phpmyadmin is natürlich auch schwierig, da is ne max-Grenze von 2mb drin. :roll: Hab übrigens webspace, also bitte nichts ala max-Grenz ändern in der php.ini :roll:

Danke
 
Ich würde es mit MySQL-Administrator machen. Wenn der externe Zugriff nicht möglich sein sollte, den Support bitten für deine IP den Zugriff freizuschalten oder den Dump auf den Space hochladen, sodass diese die Daten einspielen können.
Für uns ist sowas Kundenservice und binnen kürzester Zeit erledigt.
 
hi Probiers dochmal mit dem Script Mysql Dumper.... das hat mir schon bei größeren Datenbanken geholfen.

Gruß CrocHunter
 

Ja, aber habe nur Webspace und das schaut nach Root-Zugang aus, was da geraten wird.

Ich würde es mit MySQL-Administrator machen. Wenn der externe Zugriff nicht möglich sein sollte, den Support bitten für deine IP den Zugriff freizuschalten oder den Dump auf den Space hochladen, sodass diese die Daten einspielen können.
Für uns ist sowas Kundenservice und binnen kürzester Zeit erledigt.

Hast du zufällig nen Link oder was?

hi Probiers dochmal mit dem Script Mysql Dumper.... das hat mir schon bei größeren Datenbanken geholfen.

Gruß CrocHunter

Ja, aber damit kann man ja nur komplette Datenbanken backupen und wiederherstellen. Ich möchte ja aber einfach in die aktuelle ein paar weitere Tabellen einfügen. Und dafür hat der mysqldumper doch nur den SQL-Modus, der aber nicht besser ist als der Importmodus von phpmyadmin.
 
Ich möchte ja aber einfach in die aktuelle ein paar weitere Tabellen einfügen. Und dafür hat der mysqldumper doch nur den SQL-Modus, der aber nicht besser ist als der Importmodus von phpmyadmin.
Dann schreib deine Anpassungen doch einfach vor dem Import in die SQL-Datei mit rein.

Und, was soll das bringen?
Die Datenbank nimmt 1000% nur Verbindungen von localhost an.
 

Versteh ich leider auch nicht ganz.

Dann schreib deine Anpassungen doch einfach vor dem Import in die SQL-Datei mit rein.

Das online ist auch schon ne recht große Datei. Also dann müsste ich ja erst 2 große zusammensetzen und hätte ja noch ne größere....gibts denn keine Möglichkeit das irgendwie anders zu machen? Denn ich hab dieses bigdump-Script probiert, aber da sind leider ab nem gewissen punkt zu viele Zeilen und da bricht er dann ab.
 
Hm? Also ist in der Datenbank schon was drin und die "Data"-Datei
noch noch dazu, wobei sich bisher nichts überschneidet. Habe ich das
bis hierher richtig verstanden?

Wenn ja installiere dir MySQLDumper, importiere die "Data"-Datei
und lege die zusätzlichen Spalten im phpMyAdmin an.

So sollte das funktionieren. Oder hast du MySQLDumper schon ausprobiert?
 
Und, was soll das bringen?
Die Datenbank nimmt 1000% nur Verbindungen von localhost an.
1. Das die Datenbank nur Verbindungen vom localhost annimmt, ist nicht zwingend gesagt. Man nimmt es zwar an, da es in den überwiegenden Fällen so ist. Jedoch ist die Chance ja größer als Null. Daher: Ausprobieren.
2. Wenn dem so sein sollte, kann man dennoch den Support fragen, ob die eigene IP für den Zugriff kurzfristig oder auch dauerhaft (i.d.R. bei einer festen IP) freigegeben werden kann.
3. Wenn das nicht geht, kann man den Support auch Fragen, ob dieser den Dump für den Kunden einspielt. Dazu sollte der Dump der Einfachheit halber in geeigneter Form auf dem Webspace liegen.

Bezüglich des Downloads: https://dev.mysql.com/downloads/gui-tools/5.0.html

Andernfalls muss man halt den Fußweg nehmen und die Datei splitten und in annehmbaren Häppchen einspielen. Dabei auf die mögliche Scriptlaufzeit, den maximalen Speicher und Upload- bzw. POST-Begrenzung achten.
 
Sven schrieb:
1. Das die Datenbank nur Verbindungen vom localhost annimmt, ist nicht zwingend gesagt. Man nimmt es zwar an, da es in den überwiegenden Fällen so ist. Jedoch ist die Chance ja größer als Null. Daher: Ausprobieren.
Nenn mir einen gescheiten Hoster bei dem das der Fall ist. ;)

Sven schrieb:
2. Wenn dem so sein sollte, kann man dennoch den Support fragen, ob die eigene IP für den Zugriff kurzfristig oder auch dauerhaft (i.d.R. bei einer festen IP) freigegeben werden kann.
3. Wenn das nicht geht, kann man den Support auch Fragen, ob dieser den Dump für den Kunden einspielt. Dazu sollte der Dump der Einfachheit halber in geeigneter Form auf dem Webspace liegen.
Bei den großen Hoster scheitert das häufig schon an der Faulheit des 1st Level-Supporters.

Sven schrieb:
Andernfalls muss man halt den Fußweg nehmen und die Datei splitten und in annehmbaren Häppchen einspielen. Dabei auf die mögliche Scriptlaufzeit, den maximalen Speicher und Upload- bzw. POST-Begrenzung achten.
Und genau dafür gibt es MySQLDumper.
 
Nenn mir einen gescheiten Hoster bei dem das der Fall ist. ;)
Definiere gescheit.
Meiner Ansicht nach kann man mit geringem Aufwand eine solche Option bieten. iptables, openVPN und fail2ban dürften dem Zwecke der Sicherheit genüge tun.
Wobei ich denke, dass vielmehr die Panik im Vordergrund steht, dass riesen Datenmengen eingespielt und abgerufen werden und damit der Server in die Knie gezwungen wird, was bei einem Mittelmäßigen und nicht besonders gut konfiguriertem Server auch kein Problem ist.

Bei den großen Hoster scheitert das häufig schon an der Faulheit des 1st Level-Supporters.
Ja, leider. Und wenn es nicht die Faulheit ist, die den Support zur Strecke bringt, dann halt das mangelnde Fachwissen. Und da fragt man sich, wie oder womit wollen so Leute denn ihr Geld verdienen?

Und genau dafür gibt es MySQLDumper.
Suboptimal, jedoch annehmbar. Sowas sehe ich eher als Notlösung.
 
Hi,

also habs jetzt doch über MYSQLDUMPER probiert, indem ich mir ne neue leere Tabelle erstellt habe. Allerdings kommt direkt nach dem Start das:

Array
(
[num_table_fields] => Array
(
)

[max_zeit] => 22
[startzeit] => 1210664702
[xtime] => 1210664701
[fileEOF] =>
[actual_table] => unbekannt
[offset] => 0
[aufruf] => 1
[table_ready] => 0
[part] => 0
[do_it] =>
[errors] => 0
[notices] => 0
[anzahl_eintraege] => -1
[anzahl_tabellen] => -1
[filename] => opengeodb-0.2.5a-UTF8-sql.gz
[actual_fieldcount] => 0
[eintraege_ready] => 0
[anzahl_zeilen] => 110
[summe_eintraege] => 0
[erweiterte_inserts] => 0
[flag] => -1
[EOB] =>
[dump_encoding] => utf8
[kind] => 0
[compressed] => 1
[filehandle] => Resource id #13
)


Sql: /*
Erweiterte Inserts: 0
Unbekannter SQL-Befehl:: * MySQL
 
Wenn du root-rechte auf dem Server besitzt, dann hätte ich was für dich:

Datenbank per Sftp in den root-ordner hochspielen und dann per shell diesen befehl nutzen:

mysql -u root -p datenbankname < /root/Name_deiner_SQL-Datei.sql

Normal klappt das immer Prima, so spiele ich die Datenbanken ein:))

Gruß
Trooper1976
 
Wenn du root-rechte auf dem Server besitzt, dann hätte ich was für dich:

Datenbank per Sftp in den root-ordner hochspielen und dann per shell diesen befehl nutzen:

mysql -u root -p datenbankname < /root/Name_deiner_SQL-Datei.sql

Normal klappt das immer Prima, so spiele ich die Datenbanken ein:))

Gruß
Trooper1976

Nein, hab ich doch extra gesagt, dass ich nur Webspace habe...
 
Dann entschuldige bitte, das hatte ich überlesen, aber frag doch deinen Hoster, ob er so lieb sei, weil die DB so gross ist. Aus erfahrung weiss ich, das die meisten es gerne für ihre Kunden machen.

Gruß
Trooper1976
 
Also hab die Datei entpackt und jetzt nochmal die sql mitm mysqldumper versucht....aber raus kam der gleiche Fehler.

So sieht der erste Teil der Datei aus:

/*
* MySQL
*/



SET NAMES 'utf8';

BEGIN;
/*
* Table structure for table 'geodb_type_names'
*/

create table geodb_type_names (
type_id integer not null,
type_locale varchar(5) not null,
name varchar(255) not null, /* varchar(500)? */
unique (type_id, type_locale)
) TYPE=InnoDB CHARACTER SET utf8;

/*
* Table structure for table 'geodb_locations'
*/

create table geodb_locations (
loc_id integer not null primary key,
loc_type integer not null
check (loc_type = 100100000 or loc_type = 100200000 or
loc_type = 100300000 or loc_type = 100400000 or
loc_type = 100500000 or loc_type = 100600000 or
loc_type = 100700000 or loc_type = 100800000 or
loc_type = 1)
) TYPE=InnoDB CHARACTER SET utf8;

/*
* Table structure for table 'geodb_hierarchies'
*/

create table geodb_hierarchies (
loc_id integer not null references geodb_locations,
level integer not null check (level>0 and level<=9),
id_lvl1 integer not null,
id_lvl2 integer,
id_lvl3 integer,
id_lvl4 integer,
id_lvl5 integer,
id_lvl6 integer,
id_lvl7 integer,
id_lvl8 integer,
id_lvl9 integer,
valid_since date,
date_type_since integer,
valid_until date not null,
date_type_until integer not null
check (
(
(level = 1 and /* loc_id = id_lvl1 and */
id_lvl2 is null and id_lvl3 is null and
id_lvl4 is null and id_lvl5 is null and
id_lvl6 is null and id_lvl7 is null and
id_lvl8 is null and id_lvl9 is null) or
(level = 2 and /* loc_id = id_lvl2 and */
id_lvl1 is not null and id_lvl3 is null and
id_lvl4 is null and id_lvl5 is null and
id_lvl6 is null and id_lvl7 is null and
id_lvl8 is null and id_lvl9 is null) or
(level = 3 and /* loc_id = id_lvl3 and */
id_lvl1 is not null and id_lvl2 is not null and
id_lvl4 is null and id_lvl5 is null and
id_lvl6 is null and id_lvl7 is null and
id_lvl8 is null and id_lvl9 is null) or
(level = 4 and /* loc_id = id_lvl4 and */
id_lvl1 is not null and id_lvl2 is not null and
id_lvl3 is not null and id_lvl5 is null and
id_lvl6 is null and id_lvl7 is null and
id_lvl8 is null and id_lvl9 is null) or
(level = 5 and /* loc_id = id_lvl5 and */
id_lvl1 is not null and id_lvl2 is not null and
id_lvl3 is not null and id_lvl4 is not null and
id_lvl6 is null and id_lvl7 is null and
id_lvl8 is null and id_lvl9 is null) or
(level = 6 and /* loc_id = id_lvl6 and */
id_lvl1 is not null and id_lvl2 is not null and
id_lvl3 is not null and id_lvl4 is not null and
id_lvl5 is not null and id_lvl7 is null and
id_lvl8 is null and id_lvl9 is null) or
(level = 7 and /* loc_id = id_lvl7 and */
id_lvl1 is not null and id_lvl2 is not null and
id_lvl3 is not null and id_lvl4 is not null and
id_lvl5 is not null and id_lvl6 is not null and
id_lvl8 is null and id_lvl9 is null) or
(level = 8 and /* loc_id = id_lvl8 and */
id_lvl1 is not null and id_lvl2 is not null and
id_lvl3 is not null and id_lvl4 is not null and
id_lvl5 is not null and id_lvl6 is not null and
id_lvl7 is not null and id_lvl9 is null) or
(level = 9 and /* loc_id = id_lvl9 and */
id_lvl1 is not null and id_lvl2 is not null and
id_lvl3 is not null and id_lvl4 is not null and
id_lvl5 is not null and id_lvl6 is not null and
id_lvl7 is not null and id_lvl8 is not null)
) and
(
(valid_since is null and date_type_since is null) or
(valid_since is not null and date_type_since is not null)
)
)
) TYPE=InnoDB CHARACTER SET utf8;

/*
* Table structure for table 'geodb_coordinates'
*/

create table geodb_coordinates (
loc_id integer not null references geodb_locations,
coord_type integer not null check (coord_type=200100000),
lon double precision,
lat double precision,
coord_subtype integer,
valid_since date,
date_type_since integer,
valid_until date not null,
date_type_until integer not null
) TYPE=InnoDB CHARACTER SET utf8;

/*
* Table structure for table 'geodb_textdata'
*/

create table geodb_textdata (
loc_id integer not null references geodb_locations,
text_type integer not null,
text_val varchar(255) not null, /* varchar(2000)? */
text_locale varchar(5), /* ISO 639-1 */
is_native_lang smallint(1),
is_default_name smallint(1),
valid_since date,
date_type_since integer,
valid_until date not null,
date_type_until integer not null,
check (
(
(
(text_type = 500100000 or text_type = 500100004 or
text_type = 500100002 or text_type = 500700000 or
text_type = 500700001 or text_type = 500800000 or
text_type = 500800000 or text_type = 500900000
) and
text_locale like '__%' and
is_native_lang is not null and
is_default_name is not null
) or
(
(text_type = 500100001 or text_type = 500100003 or
text_type = 500300000 or text_type = 500500000 or
text_type = 500600000
) and
text_locale is null and
is_native_lang is null and
is_default_name is null
)
) and
(
(valid_since is null and date_type_since is null) or
(valid_since is not null and date_type_since is not null)
)
)
) TYPE=InnoDB CHARACTER SET utf8;

/*
* Table structure for table 'geodb_intdata'
*/

create table geodb_intdata (
loc_id integer not null references geodb_locations,
int_type integer not null,
int_val bigint not null,
valid_since date,
date_type_since integer,
valid_until date not null,
date_type_until integer not null
) TYPE=InnoDB CHARACTER SET utf8;

/*
* Table structure for table 'geodb_floatdata'
*/

create table geodb_floatdata (
loc_id integer not null references geodb_locations,
float_type integer not null,
float_val double precision not null, /* double / float??? */
valid_since date,
date_type_since integer,
valid_until date not null,
date_type_until integer not null
) TYPE=InnoDB CHARACTER SET utf8;

/*
* Table structure for table 'geodb_changelog'
*/

create table geodb_changelog (
id integer not null primary key,
datum date not null,
beschreibung text not null,
....