I also receive this error. My install is from the IUS yum repository:
Name : mysql55-server
Arch : x86_64
Version : 5.5.19
Release : 1.ius.el5
My master server is set to MIXED:
mysql> SHOW VARIABLES LIKE 'binlog_format';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| binlog_format | MIXED |
+---------------+-------+
1 row in set (0.04 sec)
This seems to just be a warning as the results end up in the slave.
I cannot reproduce a REPLACE...SELECT warning on the master, even using prepared statements (which I suspected as a bug with myslq 5.5.18+). My test was something like this:
> REPLACE INTO bar VALUES ('test', 'something');
Query OK, 1 row affected (0.07 sec)
> SELECT * FROM bar WHERE tbl='test';
+------+-----------+
| tbl | myCol |
+------+-----------+
| test | something |
+------+-----------+
1 row in set (0.05 sec)
>PREPARE STMT FROM 'REPLACE INTO bar SELECT ?, ?';
Query OK, 0 rows affected (0.05 sec)
Statement prepared
> SELECT * FROM bar WHERE tbl='test';
+------+---------+
| tbl | myCol |
+------+---------+
| test | another |
+------+---------+
1 row in set (0.04 sec)
I also receive this error. My install is from the IUS yum repository:
Name : mysql55-server
Arch : x86_64
Version : 5.5.19
Release : 1.ius.el5
My master server is set to MIXED:
mysql> SHOW VARIABLES LIKE 'binlog_format'; ------- --+---- ---+ ------- --+---- ---+ ------- --+---- ---+
+------
| Variable_name | Value |
+------
| binlog_format | MIXED |
+------
1 row in set (0.04 sec)
This seems to just be a warning as the results end up in the slave.
I cannot reproduce a REPLACE...SELECT warning on the master, even using prepared statements (which I suspected as a bug with myslq 5.5.18+). My test was something like this:
> CREATE TABLE foo.bar ( tbl char(10) PRIMARY KEY, myCol char(10) );
Query OK, 0 rows affected (0.04 sec)
> REPLACE INTO bar VALUES ('test', 'something');
Query OK, 1 row affected (0.07 sec)
> SELECT * FROM bar WHERE tbl='test'; +------ -----+ +------ -----+ +------ -----+
+------
| tbl | myCol |
+------
| test | something |
+------
1 row in set (0.05 sec)
>PREPARE STMT FROM 'REPLACE INTO bar SELECT ?, ?';
Query OK, 0 rows affected (0.05 sec)
Statement prepared
>set @pTbl = 'test';
Query OK, 0 rows affected (0.04 sec)
l> set @pVar = 'another';
Query OK, 0 rows affected (0.04 sec)
execute STMT USING @pTbl, @pVar;
Query OK, 2 rows affected (0.04 sec)
Records: 1 Duplicates: 1 Warnings: 0
> SELECT * FROM bar WHERE tbl='test';
+------+---------+
| tbl | myCol |
+------+---------+
| test | another |
+------+---------+
1 row in set (0.04 sec)
Not sure if any of that helps.