Bug #36962 mysql-proxy ERROR 1105 (07000): can't change DB to on slave rw-splitting.lua
| Submitted: | 26 May 2008 12:58 | Modified: | 3 Jul 2008 12:03 |
|---|---|---|---|
| Reporter: | jabincn jabincn | Email Updates: | |
| Status: | Verified | Impact on me: | |
| Category: | MySQL Proxy | Severity: | S3 (Non-critical) |
| Version: | 0.6 0.7 | OS: | Linux |
| Assigned to: | Assigned Account | CPU Architecture: | Any |
| Tags: | Contribution | ||
[26 May 2008 12:58]
jabincn jabincn
[2 Jun 2008 11:12]
Sveta Smirnova
Thank you for the report. Please provide output of show variables like 'port';
[3 Jun 2008 0:31]
jabincn jabincn
thank you for you replay.
this is debug log:
server default db: cjhjd
client default db:
syncronizing
server default db: cjhjd
client default db:
syncronizing
server default db: cjhjd
client default db:
syncronizing
server default db:
client default db: cjhjd
syncronizing
[3 Jun 2008 0:37]
jabincn jabincn
mysql-proxy run: LUA_PATH="/usr/local/mysql-proxy/share/mysql-proxy/?.lua" \ /usr/local/mysql-proxy/sbin/mysql-proxy \ --proxy-backend-addresses=192.168.0.8:3306 \ --proxy-read-only-backend-addresses=192.168.0.9:3306 \ --proxy-lua-script=/usr/local/mysql-proxy/share/mysql-proxy/rw-splitting.lua \ --pid-file=/tmp/mysql-proxy.pid \ --log-level=debug \ --log-use-syslog \ --log-file=/tmp/mysql-proxy.log \ --plugins=admin \ --plugins=proxy \ --plugin-dir=/usr/local/mysql-proxy/lib/mysql-proxy/ \ --daemon [root@localhost ~]# mysql -h 192.168.0.8 -P 4040 -u devdbuser -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 28 Server version: 5.1.24-rc-log Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> show variables like 'port'; ERROR 1105 (07000): can't change DB to on slave 192.168.0.8:3306 mysql> use mysql; Database changed mysql> show variables like 'port'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | port | 3306 | +---------------+-------+ 1 row in set (0.00 sec) mysql>
[18 Jun 2008 8:43]
Christian Meisinger
Adding 'c.default_db ~= ""' for default DB check seems to solve the problem:
-- if client and server db don't match, adjust the server-side
--
-- skip it if we send a INIT_DB anyway
if cmd.type ~= proxy.COM_INIT_DB and c.default_db and c.default_db ~= "" and c.default_db ~= s.default_db then
print(" server default db: '" .. s.default_db .. "'")
print(" client default db: '" .. c.default_db .. "'")
print(" syncronizing")
proxy.queries:prepend(2, string.char(proxy.COM_INIT_DB) .. c.default_db)
end
[24 Jun 2008 8:14]
jabincn jabincn
it's ok. thank you very much!
[3 Jul 2008 12:03]
Sveta Smirnova
Thank you for the feedback. Verified as described with version 0.6.1. To repeat: 1. Start Proxy as ./src/mysql-proxy --proxy-backend-addresses=127.0.0.1:3351 --proxy-read-only-backend-addresses=127.0.0.1:3306 --proxy-lua-script=./lib/rw-splitting.lua 2. Connect to MySQL server via Proxy. 3. Issue USE db_name command. 4. Disconnect 5. Connect again 6. Issue SHOW DATABASES query. From my terminal: apple@apple ~/bzr/mysql-6.0 $mysql -h127.0.0.1 -P4040 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2305 Server version: 5.1.28-debug Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> use test Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> \q Bye apple@apple ~/bzr/mysql-6.0 $mysql -h127.0.0.1 -P4040 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2306 Server version: 5.1.28-debug Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> show databases; ERROR 1105 (07000): can't change DB to on slave 127.0.0.1:3351 mysql>
[11 Dec 2008 13:36]
Sveta Smirnova
Bug #41392 was marked as duplicate of this one.
[9 Jan 2009 19:14]
boyko yordanov
Seems that proxy selects a connection from the pool which is authed for another username.. check backend logs for "access denied" entries.. Proxy tries to sync the client/server databases but the selected connection username has no rights on the database it has to 'USE'.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.060 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.