use*_*220 18 php mysql pdo wamp
我在调试代码时突然发生错误.它有关于数据库连接的一系列错误.
ERROR: SQLSTATE[HY000] [2002] No connection could be made because the target machine actively refused it.
( ! ) Fatal error: Uncaught exception 'PDOException' with message ' in C:\wamp\www\web\main\users.php on line 15
( ! ) PDOException: SQLSTATE[HY000] [2002] No connection could be made because the target machine actively refused it. in C:\wamp\www\web\main\users.php on line 15
Run Code Online (Sandbox Code Playgroud)
这是错误指向的代码
function __construct()
{
$this->con = new PDO("mysql:host=".$this->host.";dbname=".$this->db,$this->user,$this->pass);
}
Run Code Online (Sandbox Code Playgroud)
我不知道该怎么做,因为我通常不会遇到这样的问题所以我没有研究过很多关于wamp的事情.谢谢您的帮助.
Rig*_*lly 30
如果WAMP图标为橙色,则其中一个服务尚未启动.
在您的情况下,看起来MySQL尚未启动,因为您收到的消息表明没有服务器正在运行,因此正在侦听请求.
查看mysql日志,如果它告诉您什么,请看部分中的Windows事件日志Windows -> Applications.其中的错误消息非常擅长识别MySQL无法启动的原因.
有时这是由WAMPServers MySQL从另一个安装的my.ini文件引起的,通常在\ windows或\ windows\system32文件夹中.搜索'my.ini'和'my.cnf',如果你在\ wamp ....文件夹结构之外找到其中任何一个,那么删除它,或者至少重命名它以便找不到它.然后重启MySQL服务.
小智 9
尝试将Drupal网站从一个本地主机迁移到另一个主机时,我遇到了类似的问题.从运行XAMMP的Mac到运行WAMP的Windows.
这是我在尝试访问网站页面时不断收到的错误消息.
PDOException: SQLSTATE[HY000] [2002] No connection could be made because the target machine actively refused it.
in drupal_get_installed_schema_version() (line 155 of C:\wamp\www\chia\includes\install.inc).
Run Code Online (Sandbox Code Playgroud)
在settings.php中,我已经正确地更改了所有内容,数据库名称,用户和密码.
$databases = array (
'default' =>
array (
'default' =>
array (
'database' => 'mydatabasename',
'username' => 'mydbusername',
'password' => 'mydbpass',
'host' => 'localhost',
'port' => '8889',
'driver' => 'mysql',
'prefix' => '',
),
),
);
Run Code Online (Sandbox Code Playgroud)
经过几个小时的无意识谷歌搜索后,我将端口更改为空值:
'port' => '',
Run Code Online (Sandbox Code Playgroud)
之后网站正确加载.
小智 8
可能对MySQL使用不同的端口而不是在您的代码中使用
$conn = new PDO("mysql:host=".SERVER_NAME.";port=3307;dbname=".DB_NAME, DB_USER, DB_PASS);
Run Code Online (Sandbox Code Playgroud)
两个端口应该相同。