CryptDB - 无法连接代理服务器(错误代码1105(HY000):所有后端均已离线)

我在Ubuntu 14.04中安装了CryptDB。我想要启动代理:

$ /home/user/cryptdb/bins/proxy-bin/bin/mysql-proxy \
    --plugins=proxy \
    --event-threads=4 \
    --max-open-files=1024 \
    --proxy-lua-script=$EDBDIR/mysqlproxy/wrapper.lua \
    --proxy-address=127.0.0.1:3307 \
    --proxy-backend-addresses=localhost:3306

并且它已经启动了:

2015-10-26 00:04:34: [global] (*) mysql-proxy 0.9.0 started

然后我使用以下命令登录mysql:

$ mysql -u root -pletmein -h 127.0.0.1 -P 3307

它显示:

ERROR 1105 (HY000): (proxy) all backends are down

代理输出:

2015-10-26 00:04:40: [global] (critical) proxy-plugin.c.1772: Cannot connect, all backends are down.

我在同一台VM上安装了MySQL和CryptDB。

我按照GitHub上的CryptDB自述文件中的步骤进行操作。


编辑:下面的问题已经解决,上面的问题还未解决。

此外,原始脚本(cryptdb/mysqlproxy/wrapper.lua)会导致错误:

2015-10-26 00:24:33: [global] (critical) (lua-error) [/home/user/cryptdb/mysqlproxy/wrapper.lua]

[string "/home/user/cryptdb/mysqlproxy/wrapper.lua"]:1: attempt to concatenate a nil value

似乎“os.getenv(“EDBDIR”)”返回了nil,即使我已经在“~/.bashrc”中设置了“EDBDIR”:EDBDIR=/home/user/cryptdb

所以我只是将代码修改为这样,希望这不会引起另一个问题:

-- assert(package.loadlib(os.getenv("EDBDIR").."/obj/libexecute.so",
assert(package.loadlib("/home/user/cryptdb/obj/libexecute.so",
                   "lua_cryptdb_init"))()
点赞
用户5942354
用户5942354

针对您的第一个问题,请使用以下命令启动代理:

$ /home/user/cryptdb/bins/proxy-bin/bin/mysql-proxy \
--plugins=proxy \
--event-threads=4 \
--max-open-files=1024 \
--proxy-lua-script=$EDBDIR/mysqlproxy/wrapper.lua \
--proxy-address=127.0.0.1:3307 \
--proxy-backend-addresses=127.0.0.1:3306

请注意使用 127.0.0.1 替代 localhost

针对您的第二个问题,请按照上面的建议将 export EDBDIR=/home/user/cryptdb 添加到您的 .bashrc 文件中。

2016-02-17 19:48:17