Laravel 4.2を使用してビルドした古いプロジェクトがあります。4.2error
PDOException(1045)SQLSTATE [HY000] [1045]ユーザー 'root' @ 'localhost'のアクセスが拒否されました(パスワードを使用:YES)
私はグーグルしてすべてのことを試しましたが、修正できませんでした
。envファイル
APP_KEY=az9tq5VHQCV9g5m2CsgY89jtijrCMgEA
DB_Host=localhost
DB_DATABASE=billing
DB_USERNAME=root
DB_PASSWORD=1234
database.php
'mysql' => array(
'driver' => 'mysql',
'Host' => 'localhost',
'database' => 'billing',
'username' => 'root',
'password' => '1234',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
Mが間違っている場所を教えてくれる人はいますか?
注:質問をする前に、composer updateとほとんどのstackoverflow回答を更新してみました。
更新
私はphpファイルを作成してこの接続をテストしました
<?php
$servername = "localhost";
$username = "root";
$password = "1234";
// Create connection
$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
「接続に成功しました」というメッセージが表示されます
Laravel 4.xはENVファイルもサポートしていません。 ./config/[env name] /database.phpの設定が正しいかどうかを確認する必要があるだけです。
LaravelはDBに接続できません。 priveledges を確認し、DBが存在することを確認してください。また、クライアントでDBに接続してみてください。同じログインとパスワードを使用するMySQL Workbenchのようなものです。これは、これを修正するために何ができるかについてのヒントを与えます。これを実行できない場合は、Laravel問題ではありません。
これを試して
.envファイル
APP_ENV=local
DB_CONNECTION=mysql
DB_Host=localhost
DB_DATABASE=billing
DB_USERNAME=root
DB_PASSWORD=1234
config/database.php
default' => env('DB_CONNECTION', 'mysql'),
'mysql' => array(
'driver' => 'mysql',
'Host' => env('DB_Host','localhost'),
'database' => env('DB_DATABASE','billing'),
'username' => env('DB_USERNAME','root'),
'password' => env('DB_PASSWORD', '1234'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
)
そうでない場合は、.envファイルをチェックアウトして接続を確認します
DB_Host=localhost
はLaravel 5.7で私のために働きました
私は新しいLaravel=インストールで同じ問題に遭遇しました。問題は、独自のIPアドレスにあるvagrant boxのmysqlサーバーではなく、ubuntu localhost mysqlサーバーに接続していたことでした。 '192.168.10.10'。私はそれに切り替えて、すべてが魅力的に働いた:)
.ENVを試す
APP_ENV=local
DB_CONNECTION=mysql
DB_Host=localhost
DB_DATABASE=billing
DB_USERNAME=root
DB_PASSWORD=1234
そして、DeleteからキャッシュファイルをRoot/bootstrap/cache/filesから実行して、アプリ
私はLaravel 5.6.33でテストしていますが、このエラーが表示されます: 「ユーザー 'root' @ 'localhost'のアクセスが拒否されました」、ただしユーザー名とパスワードは 正しい。このバージョンでは、これはバグだと思います。DB_Hostを127.0.0.1からlocalhostに変更して機能します。
DB_Host = 127.0.0.1 (前)
DB_Host = localhost(後)
私は問題を解決しました。接頭辞の問題。PostgreySqlにはデータベースに接頭辞があるので、接頭辞も追加する必要があります。
database.php
'mysql' => array(
'driver' => 'mysql',
'Host' => 'localhost',
'database' => 'billing',
'username' => 'root',
'password' => '1234',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => 'bill',
),
.env
は正しいポート番号を使用しています。 phpMyAdmin
を使用している場合は、次のように設定します。
MariaDB defaults to 3306
そして
MySQL defaults to 3308
だからあなたの.env
MySQLにポート3308を使用します。これが役に立てば幸いです!
ユーザー 'root' @ 'localhost'のアクセスが拒否されました(パスワードを使用:YES)
エラーが来ていましたか?考えられる理由は、データベース接続です。データベースが接続されていない場合は、エラーをスローします。
データベースをチェックして、すべてのものを削除し、すべてが正しいかどうかを確認してください。
解決しない場合は変更してください
DB_Host=127.0.0.1 TO DB_Host=localhost
Laravel 6は、空のスペースの代わりに秘密を設定しました。
DB_PASSWORD=secret
ホームステッドを使用してlaravelを学習しているときに同じ問題に直面しました。ページを開こうとすると問題が発生しました。データベースに接続しようとしましたが、mysqlを使用してデータベースに接続できますが拒否されましたコマンドライン。問題は、HomesteadがゲストからHostにWebサーバーリクエストを転送するため、myqslと同じことであると誤って想定していたことです。Homesteadは独自のmysqlサービスを持っているので、私の問題は:-Homestead sshゲストマシンにmysql -u root -p mysqlコマンドラインに接続するには、デフォルトのパスワードは "secret"です-データベースを作成しますが、必要です最初にパスワードを変更するには、ホストマシンでmysql rootのパスワードと同じパスワードに変更するだけです-mysql cliを終了し、テーブルを作成するためにphp artisan migrateを実行してください-今すぐブラウザーを更新してくださいそれはあなたのデータベースに接続できるはずです