| Bug #65759 | the '-' become @002 upgrade from mysql5.0.77 to mysql5.5 | ||
|---|---|---|---|
| Submitted: | 28 Jun 2012 3:12 | Modified: | 16 Jul 2012 8:41 |
| Reporter: | h ch | Email Updates: | |
| Status: | Verified | Impact on me: | |
| Category: | MySQL Server: Command-line Clients | Severity: | S2 (Serious) |
| Version: | 5.5, 5.5.27 | OS: | Linux |
| Assigned to: | CPU Architecture: | Any | |
| Tags: | mysqlhotcopy, upgrade | ||
[28 Jun 2012 3:12]
h ch
[28 Jun 2012 13:28]
Valeriy Kravchuk
So, the bug, if any, is in mysqlhotcopy client program from 5.5, right? Or do you use mysqlhotcopy from 5.0.77 against 5.5 database? Please, clarify.
[8 Jul 2012 0:09]
h ch
the mysqlhotcopy is from 5.5 package
[16 Jul 2012 8:41]
Valeriy Kravchuk
Even on fresh 5.5 mysqlhotcopy still does not work: mysql> create database `a-b`; Query OK, 1 row affected (0.01 sec) mysql> exit Bye [openxs@chief 5.5]$ ls data a@002db chief.pid ib_logfile0 mysql test chief.err ibdata1 ib_logfile1 performance_schema [openxs@chief 5.5]$ bin/mysqlhotcopy --user=root 'a-b' Using copy suffix '_copy' Cannot open dir '/home/openxs/dbs/5.5/data/a-b': No such file or directory at bin/mysqlhotcopy line 313.
[7 Dec 2012 13:50]
Sebastian Lemke
try this patch - I do not know if it´s perfect, but it works for me.
---------------------------------------------------
--- /usr/bin/mysqlhotcopy 2012-11-14 23:10:45.000000000 +0100
+++ mysqlhotcopy-patched@002d 2012-12-07 14:46:38.000000000 +0100
@@ -311,6 +311,10 @@
## get list of files to copy
my $db_dir = "$datadir/$db";
+
+ # Patch 20121207
+ $db_dir =~ s/-/\@002d/g;
+
opendir(DBDIR, $db_dir )
or die "Cannot open dir '$db_dir': $!";
@@ -397,7 +401,6 @@
$rdb->{target} = "$datadir/$rdb->{src}$opt{suffix}";
}
}
-
print Dumper( \@db_desc ) if ( $opt{debug} );
# --- bail out if all specified databases are empty ---
@@ -424,6 +427,10 @@
retire_directory( @existing ) if @existing && !$opt{addtodest};
foreach my $rdb ( @db_desc ) {
+ # Patch 20121207
+ $rdb->{target} =~ s/-/\@002d/g;
+ $rdb->{src} =~ s/-/\@002d/g;
+
my $tgt_dirpath = "$rdb->{target}";
# Remove trailing slashes (needed for Mac OS X)
substr($tgt_dirpath, 1) =~ s|/+$||;
---------------------------------------------------
