Re: [Sqlrelay-discussion] r/w splitting configuration question
Brought to you by:
mused
|
From: <jan...@id...> - 2012-03-09 10:43:02
|
thanks David for your fix. This solved the problem ! Very cool.
Unfortunately I can't use the router instance 'test'.
# query -config /opt/sqlrelay-0.44/etc/sqlrelay.conf -id test "select * from ut_online;"
(If using 'master' or 'slave' instance query works.)
The connections are as follows :
# lsof -ni4 |grep sql
sqlr-list 12967 nobody 6u IPv4 116943 0t0 TCP *:9000 (LISTEN)
sqlr-conn 12986 nobody 3u IPv4 116940 0t0 TCP 192.168.122.13:34141->192.168.122.152:mysql (ESTABLISHED)
sqlr-list 13081 nobody 6u IPv4 117139 0t0 TCP *:9001 (LISTEN)
sqlr-conn 13096 nobody 4u IPv4 117114 0t0 TCP 192.168.122.13:33377->192.168.122.153:mysql (ESTABLISHED)
sqlr-list 23694 nobody 7u IPv4 127196 0t0 TCP *:9002 (LISTEN)
192.168.122.13
----------------------
port 9000 'master' instance
port 9001 'slave' instance
port 9002 'test' instance (router)
192.168.122.152 MySQL master
192.168.122.153 MySQL slave
Furthermore I can't use neither
$ mysql -h 192.168.122.13 -P 9000 -p -e "select * from ut_online;"
Enter password:
nor -P 9001
(output is missing)
MySQL client version is :
$ mysql --version
mysql Ver 14.14 Distrib 5.1.58, for debian-linux-gnu (x86_64) using readline 6.2
Could you please point me to the right direction.
kind regards,
---
Jan
________________________________________
Von: David Muse [dav...@fi...]
Gesendet: Freitag, 9. März 2012 03:40
An: Discussion of topics related to SQL Relay
Betreff: Re: [Sqlrelay-discussion] r/w splitting configuration question
Hi Jan,
It looks like I introduced a bug in the last release. Here is a quick fix:
Edit src/util/sqlrconfigfile.cpp and look for the following code, near
line 558:
// Filter section, nested (runquery*)
case FILTER_TAG:
currentname="filter";
if (!charstring::compare(name,"runquery")) {
thistag=RUNQUERY_TAG;
} else {
ok=false;
}
break;
// Filter section, nested (runquery*)
case ROUTE_TAG:
currentname="route";
if (!charstring::compare(name,"runquery")) {
thistag=RUNQUERY_TAG;
} else {
ok=false;
}
break;
Change instances of "runquery" to "query" and RUNQUERY_TAG to QUERY_TAG,
as follows:
// Filter section, nested (query*)
case FILTER_TAG:
currentname="filter";
if (!charstring::compare(name,"query")) {
thistag=QUERY_TAG;
} else {
ok=false;
}
break;
// Filter section, nested (query*)
case ROUTE_TAG:
currentname="route";
if (!charstring::compare(name,"query")) {
thistag=QUERY_TAG;
} else {
ok=false;
}
break;
I guess I got a little too aggressive with search and replace. With
those modifications, it should work as expected.
Sorry for the confusion.
David Muse
dav...@fi...
|