Laravel 拒绝访问连接数据库
Laravel acces denied for connecting db
我最近开始 laravel,但出现错误
SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO) (SQL: select count(*) as aggregate from `users` where `email` = ***)
当我尝试使用默认身份验证系统注册时,在一个干净的新项目上。 php artisan migrate
运行良好,我可以使用与 .env 文件中相同的凭据通过 mysql workbrench 连接到数据库。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=udemy-cms
DB_USERNAME=root
DB_PASSWORD=
我正在使用带 laravel 和 mysql workbrench 的宅基地。我尝试了 php artisan config:clear
但确实如此
没用。
database.php 是默认值
'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'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'),
]) : [],
在此先感谢您的帮助。
确保您更新了 .env 文件中的以下值
DB_CONNECTION = mysql
DB_HOST = "127.0.0.1" //ip or localhost
DB_PORT = "3306" //make sure its true one
DB_DATABASE = "your_database_name"
DB_USERNAME = "root" //is as default if you didnt create a new
DB_PASSWORD = "password" //or empty
更新 .env
文件和 运行 命令后 php artisan config:cache
然后重新启动项目的服务器并使用 php artisan serve
命令再次为项目提供服务
首先,我建议检查您是否真的可以使用您当前的凭据连接到您的 mysql。您应该能够像这样在命令行中连接到它:
mysql -uroot -p
这基本上是尝试使用 root 用户连接到 mysql,没有密码。如果这不起作用,则您的用户不存在或您的密码错误。
如果有效,您应该 运行 按照以下步骤查看您的数据库 udemy-cms 是否实际存在:
show databases;
如果它没有显示您的数据库,您需要创建它。
CREATE DATABASE udemy-cms;
也有可能是您的用户没有足够的权限,这种情况下您需要给当前用户足够的权限。
我最近开始 laravel,但出现错误
SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO) (SQL: select count(*) as aggregate from `users` where `email` = ***)
当我尝试使用默认身份验证系统注册时,在一个干净的新项目上。 php artisan migrate
运行良好,我可以使用与 .env 文件中相同的凭据通过 mysql workbrench 连接到数据库。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=udemy-cms
DB_USERNAME=root
DB_PASSWORD=
我正在使用带 laravel 和 mysql workbrench 的宅基地。我尝试了 php artisan config:clear
但确实如此
没用。
database.php 是默认值
'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'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'),
]) : [],
在此先感谢您的帮助。
确保您更新了 .env 文件中的以下值
DB_CONNECTION = mysql
DB_HOST = "127.0.0.1" //ip or localhost
DB_PORT = "3306" //make sure its true one
DB_DATABASE = "your_database_name"
DB_USERNAME = "root" //is as default if you didnt create a new
DB_PASSWORD = "password" //or empty
更新 .env
文件和 运行 命令后 php artisan config:cache
然后重新启动项目的服务器并使用 php artisan serve
命令再次为项目提供服务
首先,我建议检查您是否真的可以使用您当前的凭据连接到您的 mysql。您应该能够像这样在命令行中连接到它:
mysql -uroot -p
这基本上是尝试使用 root 用户连接到 mysql,没有密码。如果这不起作用,则您的用户不存在或您的密码错误。
如果有效,您应该 运行 按照以下步骤查看您的数据库 udemy-cms 是否实际存在:
show databases;
如果它没有显示您的数据库,您需要创建它。
CREATE DATABASE udemy-cms;
也有可能是您的用户没有足够的权限,这种情况下您需要给当前用户足够的权限。