Chris,

----- Original Message ----- 
From: "Jeremy Zawodny" <[EMAIL PROTECTED]>
Newsgroups: mailing.database.mysql
Sent: Thursday, May 29, 2003 10:17 AM
Subject: Re: Query log/binlog inconsistency


> On Wed, May 28, 2003 at 05:05:38PM -0700, Chris Tucker wrote:
> > Hi,
> >
> > I'm running into an issue on MySQL 4.0.12 (not tested on other
> > releases) using an InnoDB table type, where an update query is
> > getting written to the query log but never being propogated as far
> > as the binlog.  The query is also not updating the DB, though
> > according to the connection layer (PEAR DB) it is affecting rows as
> > one would expect.  Running the query through a command line (logged
> > in as the same user, from the same box, etc.) works as expected,
> > writing to the query log, updating the DB, and then writing to the
> > binlog.
>
> Hmm.
>
> The fact that the it doesn't show up in the binlog *and* it never
> affects you data is good.  That means the binlog is working
> properly. :-)
>
> > At present it seems the failure to write to the binlog is almost
> > certainly because something is failing between the arrival of the
> > query at the DB server (as signified by the entry in the query log)
> > and the committing of the data (as would be signified by the data
> > being appropriately modified and the binlog being written to).
>
> Agreed.
>
> > My question is essentially: what could fail between these steps that
> > would: 1) not be reported back to the calling agent 2) not be logged
> > to the db error log 3) not happen when running directly through the
> > MySQL command-line client but happen when running through an
> > (admittedly rather questionable) PHP library when the queries
> > received by the DB are verifiably the same in every apparent aspect
> > (through inspection of the query log).
>
> The first thing that comes to mind is that the abstraction layer
> you're using "forgets" to COMMIT the data, so InnoDB rolls it back and
> never write the query to the binlog.

Jeremy's explanation is plausible. If the PHP library runs in the
AUTOCOMMIT=0 mode, then the query is executed and reports modified rows, but
when the connection ends mysqld rolls back the transaction because it was
not explicitly committed.

Also note that a deadlock or a lock wait timeout error rolls back the WHOLE
current transaction. But I assume you did not get any of these errors or
other errors?

It would help if you could post the relevant query log excerpt.

> Jeremy

Best regards,

Heikki Tuuri
Innobase Oy
http://www.innodb.com
Transactions, foreign keys, and a hot backup tool for MySQL
Order MySQL technical support from https://order.mysql.com/

> -- 
> Jeremy D. Zawodny     |  Perl, Web, MySQL, Linux Magazine, Yahoo!
> <[EMAIL PROTECTED]>  |  http://jeremy.zawodny.com/
>
> MySQL 4.0.8: up 114 days, processed 3,574,615,610 queries (360/sec. avg)
>
> -- 
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:
http://lists.mysql.com/[EMAIL PROTECTED]
>



-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to