我最近启动了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中使用homestead。我尝试了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'),
]) : [],
在此先感谢您的帮助。
答案 0 :(得分:0)
确保已更新.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
命令再次为项目提供服务
答案 1 :(得分:0)
首先,我建议您检查一下是否可以实际使用当前凭据连接到mysql。您应该可以像这样在命令行中连接到它:
mysql -uroot -p
这基本上是尝试使用root用户(没有密码)使用root用户连接到mysql。如果这样不起作用,则您的用户不存在或您的密码错误。
如果有效,则应运行以下命令,以查看数据库udemy-cms是否确实存在:
show databases;
如果它没有显示您的数据库,则需要创建它。
CREATE DATABASE udemy-cms;
您的用户也可能没有足够的权限,在这种情况下,您需要为当前用户授予足够的权限。