我可以通过Workbench通过mysql代理访问我的数据库但是当我尝试浏览到连接到数据库的内部网络上的页面时,我得到了:
HY000: (proxy) all backends are down
我在任何机器上都能得到它,包括运行代理和Workbench的机器。
我用来连接数据库的代码是:
$user = 'view_user', $pass = 'european', $database = 'db2014', $host = '192.168.0.13', $port = '4040';
parent::__construct('mysql:host=' . $host . ';port=' . $port . ';dbname=' . $database, $user, $pass);
$this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->setAttribute(PDO::ATTR_PERSISTENT, FALSE);
$this->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$this->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE);
$this->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, TRUE);
$this->exec("SET NAMES utf8");
$this->exec("SET character_set_results = 'utf8',
character_set_client = 'utf8',
character_set_connection = 'utf8',
character_set_database = 'utf8',
character_set_server = 'utf8'");
凭据绝对正确,与我在Workbench中使用的凭据相同。
有没有人知道为什么它应该在什么时候起作用呢?
我的代理配置:
"C:\MySQL Proxy\bin\mysql-proxy" --proxy-backend-addresses="192.168.0.10:3306" --proxy-backend-addresses="192.168.0.11:3306" --proxy-address="127.0.0.1:4040"
答案 0 :(得分:1)
我已经弄清楚了。只是张贴其他人有这个问题。
问题是--proxy-address
设置为本地主机时应设置为机器实际IP,即在我的情况下为192.168.0.13而不是127.0.0.1!