警告:mysqli_connect():(HY000/1045):6行目のC:\ Users\xampp\htdocs\PHP_Login_Script\config.phpでユーザー 'username' @ 'localhost'のアクセスが拒否されました(パスワード:YESを使用)
警告:mysqli_real_escape_string()は、パラメーター1がmysqliであり、C:\ Users\xampp\htdocs\PHP_Login_Script\login.phpの10行目にブール値が指定されることを想定しています
警告:mysqli_real_escape_string()は、パラメーター1がmysqliであると想定しています。11行目のC:\ Users\xampp\htdocs\PHP_Login_Script\login.phpでブール値を指定します
警告:mysqli_query()はパラメーター1がmysqliであると想定しています。ブール値は15行目のC:\ Users\xampp\htdocs\PHP_Login_Script\login.phpで指定されています
警告:mysqli_fetch_array()は、パラメーター1がmysqli_resultであると想定しています。16行目のC:\ Users\xampp\htdocs\PHP_Login_Script\login.phpにnullが指定されています
警告:mysqli_num_rows()はパラメーター1がmysqli_resultであると想定しています。C:\ Users\xampp\htdocs\PHP_Login_Script\login.phpの行19
構成ファイルが次のような場合でも、localhostで上記のエラーが発生します。
<?php
define("DB_Host", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_DATABASE", "databasename");
$db = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
?>
これは以前は機能していましたが、現在はもう機能しません。このコードに問題はありますか、それとも現在動作していませんか? これ は、現在取り組んでいるチュートリアルです。
ユーザー名、ホスト、およびパスワードのその組み合わせは、サーバーへの接続を許可されていません。サーバー上のアクセス許可テーブル(必要に応じて許可を再読み込みする)と、正しいサーバーに接続していることを確認します。
ワンプアップデートを実行している場合
define("DB_Host", "localhost");
あなたのマシンのIPアドレス(私は192.168.0.25);
define("DB_Host", "192.168.0.25");
コンソールでipconfigと入力するか、mac/linuxでifconfigと入力すると、ウィンドウで見つけることができます。
mysqli_connect(DB_SERVER、DB_USERNAME、DB_PASSWORD、DB_DATABASE);
dB_SERVERの代わりにDB_Hostを使用します
コードを見て、DB_Hostを定義し、DB_SERVERを照会しました。 DB_USERおよびDB_USERNAMEこのコードを使用
define("DB_SERVER", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_DATABASE", "databasename");
$connect = mysqli_connect(DB_SERVER , DB_USER, DB_PASSWORD, DB_DATABASE);
パスワードに特殊文字が含まれていないことを確認し、単純なパスワード(例:12345)を保持するだけで機能します。これは私が今まで見た中で最も奇妙なことです。これを理解するのに約2時間かかりました。
注:下記の12345はプレーンパスワードです
GRANT ALL PRIVILEGES ON dbname.* TO 'yourusername'@'%' IDENTIFIED BY '12345';
dB_USERとして定義しますが、DB_USERNAMEとして使用します。また、phpはusername @ localhostにアクセスできないと言っています。 root @ localhostではありません。
定義を変更するか、パラメータを接続します。
XAMPP 7とopencartアラビア語3でも同じ問題に直面しました。localhostを実際のマシン名に置き換えると、この問題が再発生します。
これはあなたのコードです:
<?php
define("DB_Host", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_DATABASE", "databasename");
$db = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
?>
このメッセージの原因となる唯一のエラーは次のとおりです。
DB_USER
を定義していますが、後でDB_USERNAME
として呼び出しています。次回はもっと注意してください。
PHP
でコーディングを開始したい入門レベルのプログラマーは、自分があまり知らないものを使用しない方が良いでしょう。
アドバイスとしてのみ、より普遍的な(初めて)コードを使用してみてください。
例:define()
ステートメントを使用せず、変数宣言を$db_user = 'root';
として使用してください
素敵な経験をしてください:)
私の場合、問題は次のとおりです。
define ('DB_PASSWORD', "MyPassw0rd!'");
(奇数のシングル「ダブルの前」)
AWS RDS MySQLで同じ問題が発生しました。今、 回答済み 類似 質問 ここ。さまざまなソースを探しましたが、このスレッドの時点では、ほとんどすべての回答が不足しています。このスレッドは私を助けてくれましたが、サーバーでホスト名を更新することを念頭に置いてください。 SSHにアクセスし、手順に従います。
cd /etc/
Sudo nano hosts
今、ここにホスト名を追加:たとえば:
127.0.0.1 localhost
127.0.0.1 subdomain.domain.com [if cname redirected to endpoints]
127.0.0.1 xxxxxxxx.xxxx.xxxxx.rds.amazonaws.com [Endpoints]
そして、次のようにconfig/database.php
を設定します:
$active_group = 'default';
$query_builder = TRUE;
$db['default'] = array(
'dsn' => '',
'hostname' => '35.150.12.345',
'username' => 'user-name-here',
'password' => 'password-here',
'database' => 'database-name-here',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
ここで、35.150.12.345
はあなたのIPv4パブリックIP、そこにあるec2-dashboard > Network Interfaces > Description : RDSNetworkInterface >> IPv4 Public
IP('35 .150.12.345 ')にあります。
注:IPV4のみが「ホスト名」オプションで機能することに注意してください。ホスト名、cname、ドメインはデータベース接続エラーを出力します。
アクセスを制限するように設定したroot
とは異なるユーザーと接続しようとすると、このエラーが発生しました。
Mysqlでは、ホスト%
でユーザーMofX
を設定しましたが、接続しませんでした。
「MofX」@「127.0.0.1」のように、ユーザーのホストを127.0.0.1
に変更すると、機能しました。
上記の質問に対する回答があります。接続で4つのストリングすべてを同時に使用して快適に感じるようにするためです。
<?php
define("DB_Host", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_DATABASE", "databasename");
$db = new mysqli(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
// you could test connection eventually using a if and else conditional statement,
// feel free to take out the code below once you see Connected!
if ($db) {
echo "Connected!";
} else {
echo "Connection Failed";
}
?>
引数の定義にタイプミスがあり、DB_HostをDB_SERVERに変更し、DB_USERをDB_USERNAMEに変更します:
<?php
define("DB_SERVER", "localhost");
define("DB_USERNAME", "root");
define("DB_PASSWORD", "");
define("DB_DATABASE", "databasename");
$db = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
?>
ここでいくつかの問題を修正しました。ここで定義した「DB_Host」はその下のDB_Hostであり、「DB_USER」も「DB_USER」と呼ばれます。コードが同じであることを常に確認してください。
<?php
define("DB_Host", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_DATABASE", "");
$db = mysqli_connect(DB_Host, DB_USER, DB_PASSWORD, DB_DATABASE);
?>