我已经执行了两个命令通过SSH没有错误,当我试图通过SSH隧道连接到MySQL服务器即使我做了一个简单的查询,如select * from table我没有得到任何结果。
当我访问现场网站的PHP脚本时,我没有得到任何错误。
我得到这个错误: mysqli::mysqli(): (HY000/2002): Operation timed out当我访问本地托pipe的php脚本时, mysqli::mysqli(): (HY000/2002): Operation timed out 。
当然,它们都连接到远程MySQL服务器。 如果改变了一些东西,我在本地安装了Apache和MySQL。
当我通过MySQL工作台连接时,一切正常。
我也在my.cnf注释了这一行: #bind-address = 127.0.0.1
ssh -fNg -L 3307:127.0.0.1:3306 root@server_ip
mysql -h 127.0.0.1 -P 3307 -u root -p database_name
// PHP
$mysqli = new mysqli("127.0.0.1:3307", "root", "root", "database_name");
mysqli构造函数接受指定端口的第5个可选参数。 你应该使用
$mysqli = new mysqli("127.0.0.1", "root", "root", "database_name", "3307");
代替。
你确认你可以连接到其他主机的端口吗? Mysql通常使用unix域套接字而不是端口(也可以转发)。
ssh -fNg -L /var/run/mysqld/mysqld.sock:/var/run/mysqld/mysqld.sock root@server_ip