2017-05-14 11 views
0

私は次のPHPコードPHPがMySQLに接続できないのはなぜですか?

<?php 

require "credentials.php"; 

$conn = mysqli_connect($hostname, $username, $password, $databaseName); 

if(mysqli_connect_errno()) 
{ 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

?> 

を使用して、私のMySQLデータベースに接続しようとしていますそして、私は次の出力を取得しています:これが起こっている理由の可能性が何

Failed to connect to MySQL: Connection refused 

、そしてどのように私はそれを修正することはできますか?

ありがとうございます。

+0

ファイアウォールが要求をブロックしている、または多分より多くの可能性の高いサーバが実行されていないため、MySQLのポートが全く開いていないであることを示唆している「接続が拒否されました」。 MySQLサービスが利用可能であることを確認してください。ローカルサーバに接続する場合は、接続ホストとして '127.0.0.1'ではなく' localhost'を使用してみてください。リモートホストの場合は、そのホストの管理者に連絡して、ファイアウォール経由でアクセスしてください。 –

+0

mysqldサービスが起動していますか? – Zeke

答えて

0

あなたのコードからは、未定義の変数を使用してデータベースに接続しているようです。そのファイルに次のようなものを使用するよりも、あなたは、外部ファイルからそれらをロードする場合:

define("DBPASSWORD", "database_pass"); 
define("DBUSERNAME", "databaseusername"); 
define("DBNAME", "database"); 
define("DBHOST", "database_host"); 

とファイルで使用するよりも、あなたが私たちに示さ

$conn = mysqli_connect(DBHOST, DBUSERNAME, DBPASSWORD, DBNAME); 

または別の方法を、方法私がすることはできません推薦はグローバルを使用しています。

警告:必要がない場合は、グローバルの使用をお勧めします。

あなたcredentials.phpはそのようになります。

global $databaseName; 
global $password; 
global $username; 
global $username; 
$databaseName= "db_name"; 
$password= "db_password"; 
$username= "db_username"; 
$hostname= "db_host"; 

や他の場所よりも、最初のあなたは、使用前にグローバルを呼び出す必要があります。

require "credentials.php"; 

global $databaseName; 
global $password; 
global $username; 
global $username; 

$conn = mysqli_connect($hostname, $username, $password, $databaseName);