Laravel数据库连接:拒绝用户访问

时间:2017-04-16 18:49:51

标签: mysql laravel phpmyadmin

我用Ampps(windows 10)安装laravel with。

它有效。

但现在我想连接到mysql。

我创建了一个博客' DB并更改这两个文件: .env文件:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD='mysql'

和/config/database.php:

  'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', 'localhost'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'blog'),
            'username' => env('DB_USERNAME', 'root'),
            'password' => env('DB_PASSWORD', 'mysql'),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => false,
            'engine' => null,
        ],

但是当我想要迁移时,我仍然会收到以下消息:

  

C:\ Program Files(x86)\ Ampps \ www \ blog> php artisan migrate

     

[照亮\数据库\ QueryException]
  SQLSTATE [HY000] [1045]拒绝访问用户' root' @' localhost' (使用密码:是)(SQL:select * from information_schema.tables where table_schema = blog and table_name = migrations)

     

[PDOException]
  SQLSTATE [HY000] [1045]拒绝访问用户' root' @' localhost' (使用密码:是)

4 个答案:

答案 0 :(得分:1)

你应该写这个

'mysql' => [
            'driver' => 'mysql',
            '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', ''),
            'charset' => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],

并且你的env文件是

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD=mysql

同时重启服务器。

答案 1 :(得分:0)

尝试在命令

下运行
php artisan cache:clear

这应该更新缓存中保存的设置。

答案 2 :(得分:0)

密码应为此

DB_PASSWORD=mysql

不是这个

DB_PASSWORD='mysql'

答案 3 :(得分:0)

首先将.env文件中的密码从DB_PASSWORD='mysql'更改为DB_PASSWORD=mysql,而不用单引号引起来。其次,您应该为数据库设置更安全的密码。

您应授予root用户访问数据库的权限。

GRANT ALL PRIVILEGES ON blog.* TO 'root'@'localhost' identified by 'mysql';
FLUSH PRIVILEGES;
相关问题