使用mysql-proxy时,启用进程一段时间后会弹出server default db: client default db: store syncronizing,然后这个服务便不能使用了,在客户端无法连接上数据库,我需要怎样在配置文件中正确添加server default db和client default db的值
时间: 2024-03-07 18:50:46 浏览: 58
haproxy安装,实现负载均衡 mysql要事先配置好主从/主主等模式
在mysql-proxy的配置文件中,你可以通过以下方式设置`server default db`和`client default db`的值:
```
mysql-proxy --proxy-backend-addresses=127.0.0.1:3306 \
--proxy-lua-script=/path/to/mysql-proxy.lua \
--proxy-username=root \
--proxy-backend-addresses=127.0.0.1:3306 \
--proxy-backend-addresses=127.0.0.1:3307 \
--proxy-read-only-backend-addresses=127.0.0.1:3308 \
--proxy-skip-profiling \
--proxy-server-default-db=store \
--proxy-client-default-db=store
```
其中,`--proxy-server-default-db`用于设置服务端默认数据库,`--proxy-client-default-db`用于设置客户端默认数据库。这里将默认数据库都设置为`store`。
如果你使用的是mysql-proxy的Lua脚本进行配置,可以在脚本中添加以下代码来设置默认数据库:
```
function read_query(packet)
if packet:byte() == proxy.COM_QUERY then
if string.match(packet:sub(2), "^select") then
-- set server default db
proxy.queries:append(1, packet,
{ resultset_is_needed = true, server_default_db = 'store' })
return proxy.PROXY_SEND_QUERY
end
-- set client default db
proxy.connection.client.default_db = 'store'
end
end
```
这里使用了`server_default_db`和`client.default_db`属性来设置服务端和客户端的默认数据库。
阅读全文