uppercase missing in replication log-files

uppercase missing in replication log-files

am 30.03.2003 11:42:39 von Norbert Titz

------=_NextPart_000_0022_01C2F6B1.7788E620
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0023_01C2F6B1.7788E620"


------=_NextPart_001_0023_01C2F6B1.7788E620
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

From: no.titz@utanet.at
Subject: uppercase missing in replication log-files

Description:
uppercase for table names is missing in the replication log-files.
so it is impossible to use the created log-files to replicate onto a =
mysql server running on an unix machine.

How-To-Repeat:
insert or delete a row

Fix:
using mysql-3.23.51

Synopsis: uppercase
Submitter-Id:=20
Originator: No Titz
Organization: =20
MySQL support: none
Severity: critical
Priority: low
Category: mysqld
Class: sw-bug
Release: mysql-3.23.56, mysql-3.23.54, mysql-3.23.53

Exectutable: mysqld
Environment: =20
System: Win98
Compiler: VC++ 6.0
Architecture: i
------=_NextPart_001_0023_01C2F6B1.7788E620
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable



charset=3Diso-8859-1">




From: href=3D"mailto:no.titz@utanet.at">no.titz@utanet.at
Subject: =
uppercase=20
missing in replication log-files

 

Description:
 uppercase for table names is =
missing in=20
the replication log-files.
 so it is impossible to use the =
created=20
log-files to replicate onto a mysql server running on an unix=20
machine.

 

How-To-Repeat:
 insert or delete a =
row

 

Fix:
 using mysql-3.23.51

 

size=3D2>Synopsis: uppercase
Submitter-Id: 
Originator:&n=
bsp;No=20
Titz
Organization:  
MySQL support: =20
none
Severity: critical
Priority: low
Category: m=
ysqld
Class:  sw-bug
Release: mysql-3.23.56,=20
mysql-3.23.54, mysql-3.23.53

 

Exectutable:   =
mysqld
Environment:  =20

System:       =20
Win98
Compiler:      VC++ =
6.0
Architecture: =20
i


------=_NextPart_001_0023_01C2F6B1.7788E620--


------=_NextPart_000_0022_01C2F6B1.7788E620
Content-Type: text/plain; charset=us-ascii

--
MySQL Bugs Mailing List
For list archives: http://lists.mysql.com/bugs
To unsubscribe: http://lists.mysql.com/bugs?unsub=gcdmb-bugs@m.gmane.org
------=_NextPart_000_0022_01C2F6B1.7788E620--

Re: uppercase missing in replication log-files

am 01.04.2003 16:41:27 von miguel solorzano

At 15:58 01/04/2003 +0200, Guilhem Bichot wrote:
Hi,

Guilhem, I take a look in the description of this issue and
for default mysqld is configured to:
c:\mysql\bin>mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 3.23.56-max-nt

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show variables like "%lower%";
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_table_names | 1 |
+------------------------+-------+
1 row in set (0.14 sec)

Then adding to my.cnf/my.ini:

set-variable =3D lower_case_table_names=3D0

c:\mysql\bin>mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 3.23.56-max-nt

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show variables like "%lower%";
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_table_names | 0 |
+------------------------+-------+
1 row in set (0.00 sec)

>Hi Norbert,
>
> > Description:
> > uppercase for table names is missing in the replication log-files.
> > so it is impossible to use the created log-files to replicate onto
> > a mysql server running on an unix machine.
> >
> > How-To-Repeat:
> > insert or delete a row
>
>Sorry, I fail to understand the problem.
>Could you please provide a repeatable testcase (do not forget to copy/paste
>your my.cnf options for master and slave), and make obvious what the
>problem is, which errors are printed ?
>
>--
>MySQL 2003 Users Conference -> http://www.mysql.com/events/uc2003/
>For technical support contracts, visit https://order.mysql.com/?ref=3Dmgbi
> __ ___ ___ ____ __
> / |/ /_ __/ __/ __ \/ / Mr. Guilhem Bichot
> / /|_/ / // /\ \/ /_/ / /__ MySQL AB, Full-Time Software Developer
>/_/ /_/\_, /___/\___\_\___/ Bordeaux, France
> <___/ www.mysql.com
>
>--
>MySQL Bugs Mailing List
>For list archives: http://lists.mysql.com/bugs
>To unsubscribe: http://lists.mysql.com/bugs?unsub=3Dmiguel@mysql.com

--=20
Regards,
__ ___ ___ ____ __
/ |/ /_ __/ __/ __ \/ / Miguel Angel Sol=F3rzano
/ /|_/ / // /\ \/ /_/ / /__ S=E3o Paulo - Brazil
/_/ /_/\_, /___/\___\_\___/
<___/ www.mysql.com=20


--
MySQL Bugs Mailing List
For list archives: http://lists.mysql.com/bugs
To unsubscribe: http://lists.mysql.com/bugs?unsub=3Dgcdmb-bugs@m.gmane.org

Re: uppercase missing in replication log-files

am 01.04.2003 16:55:56 von Guilhem Bichot

On Tuesday 01 April 2003 16:41, miguel solorzano wrote:
> At 15:58 01/04/2003 +0200, Guilhem Bichot wrote:
> Hi,
>
> Guilhem, I take a look in the description of this issue and
> for default mysqld is configured to:
> c:\mysql\bin>mysql
> Welcome to the MySQL monitor. Commands end with ; or \g.
> Your MySQL connection id is 1 to server version: 3.23.56-max-nt
>
> Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
>
> mysql> show variables like "%lower%";
> +------------------------+-------+
> | Variable_name | Value |
> +------------------------+-------+
> | lower_case_table_names | 1 |
> +------------------------+-------+
> 1 row in set (0.14 sec)
>
> Then adding to my.cnf/my.ini:
>
> set-variable = lower_case_table_names=0
>
> c:\mysql\bin>mysql
> Welcome to the MySQL monitor. Commands end with ; or \g.
> Your MySQL connection id is 1 to server version: 3.23.56-max-nt
>
> Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
>
> mysql> show variables like "%lower%";
> +------------------------+-------+
> | Variable_name | Value |
> +------------------------+-------+
> | lower_case_table_names | 0 |
> +------------------------+-------+
> 1 row in set (0.00 sec)

Yes. So what is the problem with replication ?
Is it "lower_case_table_names is not replicated" ?
If so, that is true and there are similar bugs with FOREIGN_KEY_CHECKS, SQL_MODE, etc.
These should be fixed in 5.0.

--
MySQL Bugs Mailing List
For list archives: http://lists.mysql.com/bugs
To unsubscribe: http://lists.mysql.com/bugs?unsub=gcdmb-bugs@m.gmane.org

Re: uppercase missing in replication log-files

am 01.04.2003 17:03:24 von miguel solorzano

At 16:55 01/04/2003 +0200, Guilhem Bichot wrote:

> > mysql> show variables like "%lower%";
> > +------------------------+-------+
> > | Variable_name | Value |
> > +------------------------+-------+
> > | lower_case_table_names | 0 |
> > +------------------------+-------+
> > 1 row in set (0.00 sec)
>
>Yes. So what is the problem with replication ?
>Is it "lower_case_table_names is not replicated" ?

The above means that with the default set, mysqld
converts the tables names from uppercase to lower
case. Then the replication code don't has nothing
about.


--=20
Regards,
__ ___ ___ ____ __
/ |/ /_ __/ __/ __ \/ / Miguel Angel Sol=F3rzano
/ /|_/ / // /\ \/ /_/ / /__ S=E3o Paulo - Brazil
/_/ /_/\_, /___/\___\_\___/
<___/ www.mysql.com=20


--
MySQL Bugs Mailing List
For list archives: http://lists.mysql.com/bugs
To unsubscribe: http://lists.mysql.com/bugs?unsub=3Dgcdmb-bugs@m.gmane.org

Re: uppercase missing in replication log-files

am 01.04.2003 18:06:52 von Guilhem Bichot

> Sorry, I forgot to stress the point that the Linux machine (e.g. Redhat
> 7.1) cannot find the directory (table name) when not provided with the
> correct spelling (e.g. 'twentyone' instead of 'TwentyOne') in the
> replication log-files.
>
> I attached two sample log-files. One working for replication on the Linux
> machine (with the table name correctly spelled as 'TwentyOne' - version
> 3.23.51) and the other one not working (with the table name incorrectly
> spelled as 'twentyone' - version 3.23.56).
>

Ok, in the changelog of 3.23.53 we can read :

"Fixed that -O lower_case_table_names=1 also converts database names to lower
case."

Windows binaries have lower_case_table_names=1 by default,
while Unix ones have lower_case_table_names=0 by default. This is consistent
with how the OS considers case-sensitivity in filenames or not
(on Windows, 'del a' will delete a file named 'A', while on Unix no).

On Windows, you did this :
CREATE DATABASE TwentyOne
it was silently translated to
(because lower_case_table_names=1, and this
affects databases on top of tables, since 3.23.53) :
CREATE DATABASE twentyone
but is logged as it was typed.

Then you did :
"use twentyone; delete from scores where lfnr = '151'"
This was written to the binlog exactly like it was typed.

Then the Linux slave reads
CREATE DATABASE TwentyOne
use twentyone; delete from scores where lfnr = '151'

and creates a database called TwentyOne (lower_case_table_names=0)
and tries to find a database called twentyone. Problem.

Solution :
you must start your slave with -O lower_case_table_names=1
to behave like your master.
Check the manual for a description of lower_case_table_names.

--
MySQL 2003 Users Conference -> http://www.mysql.com/events/uc2003/
For technical support contracts, visit https://order.mysql.com/?ref=mgbi
__ ___ ___ ____ __
/ |/ /_ __/ __/ __ \/ / Mr. Guilhem Bichot
/ /|_/ / // /\ \/ /_/ / /__ MySQL AB, Full-Time Software Developer
/_/ /_/\_, /___/\___\_\___/ Bordeaux, France
<___/ www.mysql.com

--
MySQL Bugs Mailing List
For list archives: http://lists.mysql.com/bugs
To unsubscribe: http://lists.mysql.com/bugs?unsub=gcdmb-bugs@m.gmane.org