Troubleshooting OBproxy Deployment: Fixing Lost Connection Error Caused by Wrong Root Service List Port
This article details a step‑by‑step troubleshooting process for an OBproxy deployment error where a client loses connection to the OceanBase server due to an incorrect port in the root service list, including environment setup, command examples, log analysis, and the final resolution.
Problem Description
The OBproxy instance was deployed via RPM and, when accessed with obclient , returned the error ERROR 2013 (HY000): Lost connection to MySQL server at ‘reading authorization packet’, system error: 11 .
Introduction
OceanBase
OceanBase is an open‑source, enterprise‑grade distributed HTAP database with a shared‑nothing architecture, offering high availability, horizontal scalability, distributed transactions, multi‑tenant support, and MySQL‑compatible syntax.
OBproxy
OBproxy (OceanBase Database Proxy) is a dedicated proxy server that forwards SQL requests from clients to the appropriate OBServer instances and returns the results.
Related Information
Version and Architecture
OceanBase version 3.1.4; OBproxy version 3.2.3.5. One OceanBase instance (10.186.60.96) and one OBproxy instance (172.20.134.5) are used.
OBproxy Startup Modes
Two ways to specify the target database cluster:
ConfigURL : Allows the proxy to access multiple OceanBase clusters.
RSList : Limits the proxy to a single cluster defined by a root‑service list (e.g., 192.168.0.1:2881,192.168.0.2:2881 ).
Operation Procedure
All steps were performed using the open‑source RPM package without OBD or OCP.
1. Create a proxy user in OceanBase:
obclient -h10.186.60.96 -uroot@sys -P2881 -p -c -A
Enter password:
CREATE USER proxyro IDENTIFIED BY '123456';
GRANT SELECT ON *.* TO proxyro;
SHOW GRANTS FOR proxyro;2. Install OBproxy:
SUDO rpm -ivh --force /tmp/obproxy-ce-3.2.3.5-2.el7.x86_64.rpm3. Start the proxy instance:
cd /home/admin/obproxy-3.2.3.5 && ./bin/obproxy -p 2883 -l 2884 -n test-proxy -o observer_sys_password=7c4a8d09ca3762af61e59520943dc26494f8941b -c 'ob_xxxxxxxx' -r "10.186.60.96:2882"4. Add a watchdog process for the proxy:
# Check current proxy process count
pgrep -c obproxy | xargs --no-run-if-empty
# Start watchdog script
bin/obproxyd.sh -c checkalive -r -n test-proxy -p 2883 -t 10.186.60.96:2882 -s ob_xxxxxxxx &
# Verify two processes are running (proxy + watchdog)
pgrep -c obproxy | xargs --no-run-if-empty5. Verify configuration via OBproxy; connection to the database cluster still failed.
Diagnosis
5.1 Process Check
The proxy processes were running under the admin user, which is required.
5.2 Root Service List Parameter
The RSList parameter pointed to an IP (10.186.90.63) that did not match the intended cluster.
5.3 Log Inspection
OBproxy logs contained warnings indicating that the specified cluster name could not be found via RSList.
5.4 Cluster Name Confirmation
Verified the actual cluster name in OceanBase and ensured it matched the startup parameters.
SELECT * FROM `v$ob_cluster`;5.5 Proxy Account Verification
Confirmed that the proxyro user existed in the database and that its password was correct.
Conclusion
The root cause was an incorrect port in the root service list parameter: the port used was 2882 (RPC port) instead of the SQL port 2881. Correcting the port resolved the connection error.
Other Observations
Two defects were found in the obproxyd.sh script: inaccurate startup parameter documentation and an erroneous script terminator, both of which have been submitted as a PR ( https://github.com/oceanbase/obproxy/pull/28 ).
Suggestion: In RSList mode, the proxy should attempt an early connection test to validate the root service list and emit clearer log messages when a cluster name cannot be resolved.
Aikesheng Open Source Community
The Aikesheng Open Source Community provides stable, enterprise‑grade MySQL open‑source tools and services, releases a premium open‑source component each year (1024), and continuously operates and maintains them.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.