令人困惑的仅PDO问题:无法通过套接字连接/访问被拒绝/无法连接到服务器(共享主机)
所以问题从原来的样子上改变了,我会把原来的问题留在下面,以防止对答案的差评,就像我在有人编辑他的问题后所做的那样:
所以我正在研究一个(非常蹩脚的)共享主机,它安装了PDO,但它不起作用。使用默认参数
<?php
try {
$dbh = new PDO('mysql:host=localhost;dbname=THE_DB_NAME', 'THE_USER', 'THE_PASSWORD');
echo 'Connected to database';
}
catch(PDOException $e)
{
echo $e->getMessage();
}
?>
它抛出以下消息:
SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
只需简单的mysql_connect,即可正常工作。
套接字路径似乎是正确的(phpinfo和这个查询:
show variables like 'socket';
确认。
Localhost重定向到10.103.0.14(此数据来自mysql_get_host_info()和phpMyAdmin)
在PDO中,如果我用127.0.0.1替换localhost,我将获得
SQLSTATE[HY000] [2003] Can't connect to MySQL server on '127.0.0.1' (111)
如果我用10.103.0.14替换localhost:
Access denied for user 'USER_NAME'@'10.103.0.14' (using password: YES
IP 地址(127.0.0.1 和 10.103.0.14)都适用于mysql_connect。
因此,显然问题来自PDO连接。
有人知道这可能来自哪里,或者/和任何方法来修复它吗?
一些服务器数据:
PHP版本:5.2.10您可以看到服务器的phpinfo:http://web.lerelaisinternet.com/abcd.php?v=5 没有命令行可能。(我知道这应该是技术支持的工作,但他们的速度非常慢)
谢谢
上一个问题 :
如何在共享主机上找到mysql.sock(需要棘手的方法...
所以今天的问题是:PDO连接在共享主机上不起作用,它应该(它安装在服务器上)。只是一个基本的PDO连接:
<?php
try {
$dbh = new PDO('mysql:host=localhost;dbname=THE_DB_NAME', 'THE_USER', 'THE_PASSWORD');
echo 'Connected to database';
}
catch(PDOException $e)
{
echo $e->getMessage();
}
?>
抛出以下消息:
SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
常规的 mysql 连接:
mysql_connect("localhost", "THE_USER", "THE_PWD") or die(mysql_error());
mysql_select_db("24DLJLRR1") or die(mysql_error());;
echo 'Connected to database <br/>';
工作正常。
所以显然它找不到.sock。我认为指定正确的地址应该有效,我尝试了一些我在互联网上找到的“经典”mysql路径,但没有成功。phpinfo说它是在这个地址(/var/lib/mysql/mysql.sock)(PHP版本是5.2.10)你可以看到服务器的phpinfo:http://web.lerelaisinternet.com/abcd.php?v=5
所以我正试图弄清楚它到底在哪里!!!我试图在phpMyAdmin界面中查找,但我找不到信息,而且似乎phpMyAdmin连接到不同的服务器(它有不同的IP地址,并且尝试使用php连接到它给出了“错误的密码”错误)。mysql_connect也连接到此地址,我认为它重定向到具有一些内部密码/登录名的其他服务器。
好吧,如果您对如何获取此信息有任何想法(提供商的技术支持正在“解决问题”...已经1个月了...)。另外,也许问题来自其他地方,但同样的东西在其他共享主机上工作......
PDO的需求是因为我在这个网站上使用Symfony框架和Trinity,而Trinity插件需要PDO...我不想从头开始重做网站!
感谢您的帮助!