Huhu,
ich bringe aktuell für eine Ligaseite deren Datenbanken auf einem anderen Server unter, problematisch dabei ist, das das Quellsystem mySQL 4.1.14 und das Zielsystem 4.0.21 als Version hat.
Mit der Option --compatible-mysql40 kann ich die DBs recht zügig transportieren, allerdings fehlen nach dem Transport die "auto increment" Settings in die ganzen Tabellen.
Folge: man muß "auto increment" nachträglich überall hinterlegen, was bei >130 Tabellen ne gute Arbeit ist.
Gibt es eine Möglichkeit diese Settings irgendwie mitzutransportieren? Ich habe keine (offentsichtliche) Möglichkeit gefunden (man mysql und man mysqldump durchgesehen).
Umstellen autoincrement nach Transport einer DB
-
- Posts: 194
- Joined: 2003-02-22 22:51
- Location: München / Berg-am-Laim
Re: Umstellen autoincrement nach Transport einer DB
verrat und halt mal den kompletten mysqldump befehl, evt. liegt dein fehler ja in einer der anderen optionen.
-
- Posts: 70
- Joined: 2003-01-07 09:42
Re: Umstellen autoincrement nach Transport einer DB
mysqldump -uwebx -p123456 --compatible-mysql40 databaseX > backup.sql
So sieht mein Dump-Befehl aus... Zurückspielen mach ich so:
mysql -uwebY -p654321 databaseY < backup.sql
So sieht mein Dump-Befehl aus... Zurückspielen mach ich so:
mysql -uwebY -p654321 databaseY < backup.sql
-
- Posts: 471
- Joined: 2003-08-21 10:21
- Location: Berlin
Re: Umstellen autoincrement nach Transport einer DB
In MySQL 5.0 geht es mit information_schema ganz leicht:Sir Tom wrote:Gibt es eine Möglichkeit diese Settings irgendwie mitzutransportieren? Ich habe keine (offentsichtliche) Möglichkeit gefunden (man mysql und man mysqldump durchgesehen).
Code: Select all
root@localhost [sps]> use information_schema
Database changed
root@localhost [information_schema]> select concat("alter table ", table_name, " auto_increment = ", auto_increment) as command from tables where table_schema = "sps";
+---------------------------------------+
| command |
+---------------------------------------+
| alter table detail auto_increment = 6 |
| alter table users auto_increment = 4 |
+---------------------------------------+
2 rows in set (0.00 sec)
Code: Select all
kris@linux:/tmp> cat probe.pl
#! /usr/bin/perl -w
use DBI;
my $database = "sps";
my $dsn = "DBI:mysql:database=$database;host=127.0.0.1;port=3333";
my $dbh = DBI->connect($dsn, "root");
my $cmd = "show table status";
my $stmt = $dbh->prepare($cmd);
$stmt->execute();
while (my $res = $stmt->fetchrow_hashref) {
my %row = %$res;
my $table = $row{"Name"};
my $count = $row{"Auto_increment"};
print "alter table $table auto_increment = $countn";
}
kris@linux:/tmp> ./probe.pl
alter table detail auto_increment = 6
alter table users auto_increment = 4