所以问题从根本上改变了,我将把原来的问题留在下面,以防止对有人回答他的问题后的回答进行不好的评论:
因此,我正在安装(确实很DO脚的)共享主机,该主机已安装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中,如果我将localhost替换为127.0.0.1,我将得到
SQLSTATE[HY000] [2003] Can't connect to MySQL server on '127.0.0.1' (111)
如果我将本地主机替换为10.103.0.14:
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
无法使用命令行。(我知道这应该是技术支持的工作,但是它们确实很慢)
谢谢
上一个问题:
因此,今天的问题是: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/>';
工作良好。
所以我试图弄清楚它到底在哪里!我尝试查看phpMyAdmin界面,但找不到信息,而且似乎phpMyAdmin连接到另一台服务器(它具有不同的IP地址,并且尝试用php连接到它给出了“错误的密码”错误)。mysql_connect也连接到该地址,我认为它使用一些内部密码/登录重定向到其他服务器。
好吧,如果您对如何获取此信息有任何想法(提供商的技术支持正在“解决问题”
…已经1个月了…)。也可能问题出在其他地方,但是相同的东西在其他共享主机上也可以工作…
PDO的需要是因为我在该网站上使用了Symfony框架和Doctrine,而Doctrine插件需要PDO …我不想从头开始重做网站!
谢谢你的帮助 !
一年后,我找到了解决此问题的解决方案:使用SQLite数据库。PDO工作正常,但不适用于MySQL
编辑,因为每个人都对此表示反对:这解决了我的问题(我是OP)。我使用的是Doctrine,因此切换RDBMS既简单又快捷。此外,该网站是一些自制的CMS,流量很少,因此SQLite很好。
我知道这不是真正的问题“答案”,但是如果有人在相同的环境中: 糟糕的共享主机,您无法使用此奇怪的PDO-MySQL错误进行更改,
并且正在使用原则。这是一个解决方案。我可以删除此答案,但是如果我在OP时想到了这个答案,那么我会节省很多时间。
问题内容: 我让ELK堆栈在VM内的docker容器中运行。 我可以向ES填充,它可以在Kibana中显示。 我可以使用Logstash读取文件并将其输出到stdout。 但是Logstash无法将数据发送到ES (启用或禁用xpack似乎没有什么不同) 输出 之后,它会在“发送批量请求”,“执行运行状况检查”,“尝试复活”和“意外的池错误”之间保持循环。 随着每一次的同时,我也看到了 问题答案:
每次运行Rails4.0服务器时,都会得到这个输出。 我正在运行小牛OS X10.9,所以我不知道这是不是问题所在。我已经试了我能试的一切,但似乎都没有效果。我已经卸载并安装了postgres和pg gem多次了。 这是我的database.yml文件
问题内容: 我正在尝试使用Flask在Raspberry Pi上运行一个简单的Web服务器。当我运行Flask应用程序时,它说: 在http://127.0.0.1:5000/上运行 但是,当我在笔记本电脑的Chrome中输入此地址时, ERR_CONNECTION_REFUSED 我可以在Raspberry Pi的浏览器上打开127.0.0.1:5000。我需要怎么做才能从另一台计算机连接? 问
我正在尝试连接两个docker容器,一个是posgresql,另一个是python flask应用程序。两者都链接正确,python应用程序中的所有连接变量都直接取自postgres容器中通过链接公开的连接变量,并且与检查postgresql容器时发现的连接变量相同。当我将psql与连接字符串中的精确参数一起使用时,即: 成功连接到postgres容器中的数据库,因此我知道postgres正在通过
我有一个用C#编写的应用程序,它确实与数据库连接。 下面是我得到的错误: 警告:mysql_connect()[function.mysql connect]:第15行(php文件)中用户“用户名”@“本地主机”(使用密码:是)的访问被拒绝无法连接:用户“用户名”@“本地主机”(使用密码:是)的访问被拒绝 这是我的密码: 我从以下方面得到了这个例子: http://php.net/manual/e
这让我很困惑。 我有一个运行nginx-php-fpm的本地开发设置,我在其中使用.localhost作为每个项目的工作域。昨天Chrome停止了与本地域的合作。相反,它只是返回被拒绝的连接。DevTools将错误显示为net::ERR\u CONNECTION\u RESET。 访问http://127.0.0.1工作,但当然不适用于本地项目。 Safari继续与.localhost一起工作。