我使用php创建了注册表和登录表单。我从谷歌那里获取了消息来源。
所以我在运行index.php。
时添加了所有相应的代码显示,
SQLSTATE[HY000] [2002] No connection could be made because the target machine actively refused it.
我尝试使用stackoverflow和google修复此问题,仍然无法纠正。
我正在使用xampp。在xampp控制面板中,apache和mysql模块正在运行。和apache端口 80,443 ,mysql端口 3306 。
我可以知道,还有其他错误吗?..
有人能帮助我吗?任何帮助将不胜感激。
提前致谢。
这是我的config.php:
<?php
ob_start();
session_start();
//set timezone
date_default_timezone_set('Europe/London');
//database credentials
define('DBHOST','localhost');
define('DBUSER','root');
define('DBPASS','');
define('DBNAME','register');
//application address
define('DIR','http://domain.com/');
define('SITEEMAIL','noreply@domain.com');
try {
//create PDO connection
$db = new PDO("mysql:host=".DBHOST.";port=8889;dbname=".DBNAME, DBUSER, DBPASS);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
//show error
echo '<p class="bg-danger">'.$e->getMessage().'</p>';
exit;
}
//include the user class, pass in the database connection
include('classes/user.php');
$user = new User($db);
?>
答案 0 :(得分:3)
你没说你的mysql端口是3306:
$db = new PDO("mysql:host=".DBHOST.";port=8889
//------------------------------------------^
这可能会有所帮助:
$db = new PDO("mysql:host=".DBHOST.";port=3306
答案 1 :(得分:0)
$ db = new PDO(“mysql:host =”。DBHOST。“; port = 3306 ; dbname =”。DBNAME,DBUSER,DBPASS);
您应该将端口号更改为默认值:3306!希望这有帮助
答案 2 :(得分:0)
萨西, 如果您在本地服务器上运行它可能是您的Windows设置,则需要配置本地服务器以发送电子邮件。
Here您可以找到如何配置XAMPP以从localhost发送邮件。
很抱歉,我在这里回答你,但我没有足够的声誉发表评论:D
答案 3 :(得分:0)
当某些其他应用程序(如Skype和IIS)使用Apache端口(即80和mysql服务器,即3306)时,通常会发生此错误
您可以通过eighter卸载这些应用程序或将localhost的端口号更改为其他内容并在settings.php中进行正确的更改
答案 4 :(得分:0)
我也遇到了这个错误。 我做了以下事情: 1.找出mysql使用的端口号。在phpmyadmin中,我运行了以下sql:
show variables;
它显示了mysql的变量列表。向下滚动,你会找到端口号。
$ dsn ='mysql:host = 127.0.0.1; port = 3307; DBNAME = learnphpfast';
它就像一个魅力!
答案 5 :(得分:0)
对于Drupal用户 -
这通常是因为将服务器与mysql通信的max_execution时间。将最大执行时间从60秒增加到您想要的上限,然后再次尝试刷新页面。
它对我有用。