簡體   English   中英

Laravel 7 SQLSTATE[HY000] [2002] 連接被拒絕

[英]Laravel 7 SQLSTATE[HY000] [2002] Connection refused

我的 Laravel 項目有問題。 我是幾個小時前開始的,但我遇到了 SQL 錯誤:

SQLSTATE[HY000] [2002] 連接被拒絕

我已經搜索了幾個小時,我只發現它會是錯誤的密碼或錯誤的端口,但我檢查了一下,這對我來說很好。

這是 .env 文件:

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3302
DB_DATABASE=test_technique
DB_USERNAME=root
DB_PASSWORD=

這是 .env.example 文件:

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3302
DB_DATABASE=test_technique
DB_USERNAME=root
DB_PASSWORD=

這是數據庫。php:

'mysql' => [
        'driver' => 'mysql',
        'url' => env('DATABASE_URL'),
        'host' => env('DB_HOST', 'localhost'),
        'port' => env('DB_PORT', '3302'),
        'database' => env('DB_DATABASE', 'test_technique'),
        'username' => env('DB_USERNAME', 'root'),
        'password' => env('DB_PASSWORD', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'prefix_indexes' => true,
        'strict' => true,
        'engine' => null,
        'options' => extension_loaded('pdo_mysql') ? array_filter([
            PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
        ]) : [],
    ],

並檢查 mysql 的端口:

Test for TCP
Your port 3302 is used by a processus with PID = 2292
The processus of PID 2292 is 'mysqld.exe' Session: Services
The service of PID 2292 for 'mysqld.exe' is 'N/A'
N/A means that there are no service related to PID 2292
Processus 'mysqld.exe' is launched by service 'wampmysqld64' with PID 5048

Test for TCPv6
Your port 3302 is used by a processus with PID = 2292
The processus of PID 2292 is 'mysqld.exe' Session: Services
The service of PID 2292 for 'mysqld.exe' is 'N/A'
N/A means that there are no service related to PID 2292
Processus 'mysqld.exe' is launched by service 'wampmysqld64' with PID 5048

我從未更改過 mysql 中的 USERNAME 和 PASSWORD 所以我不知道為什么會出現這個錯誤

PS:在另一個站點中,當我像這樣使用 PDO 時,它可以工作:

new PDO("mysql:host=localhost:3302;dbname=test_technique;charset=utf8", "root", "",array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));

MySQL 的默認端口是 3306 而不是 3302 您必須像這樣使用,除非您在 php.ini 中更改了端口

DB_PORT = 3306

運行此命令

php artisan config:clear

而不是使用

php artisan serve 

利用

 php -S 127.0.0.1:8000 -t public/

這可能會有所幫助,因為如果您使用 artisan serve 並對 env 進行更改,您必須終止服務並再次運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM