当我使用' php artisan migrate'我收到以下错误消息:
[照亮\数据库\ QueryException]
SQLSTATE [HY000] [2002]拒绝连接(SQL:select * from information_schema.tables where table_schema = homestead和table_name = migrations)[PDOException]
SQLSTATE [HY000] [2002]拒绝连接
我已经在装有XAMPP的Mac上安装了Laravel并进行了以下设置:
database.php中
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'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' => '',
'strict' => true,
'engine' => null,
],
.ENV
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
我已经尝试了几种我可以在网上找到的解决方案,但到目前为止还没有一种解决方案。
答案 0 :(得分:10)
这真的很烦人,但将DB_HOST=127.0.0.1
更改为DB_HOST=localhost
可以解决问题。试一试(显然你的文件权限必须是正确的)
答案 1 :(得分:2)
首先创建数据库。在此处阅读更多相关信息:http://www.complete-concrete-concise.com/web-tools/creating-a-mysql-database-using-xampp
假设您的新数据库名为:my_db。
在你的.env中使用它:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=my_db
DB_USERNAME=root
DB_PASSWORD=""
答案 2 :(得分:1)
如果您在database.php文件中有unix_socket => env('DB_SOCKET', '')
,那么您在env.file中没有$ mysql_config --socket
。
您可以通过{{1}}
获取/ path / to / socket答案 3 :(得分:0)
这来晚了,但可能会对某人有所帮助。我遇到了同样的错误,事实证明这是我的.env文件中的错字。代替DB_HOST,而是B_HOST。在您的情况下,可能是其他一些环境密钥。仔细看看,您会发现您的env文件格式错误。
答案 4 :(得分:0)
对我来说,解决方案不同于在网上找到的其他解决方案。
我不知不觉地在Mac上使用XAMPP的VM(虚拟机)版本,其功能与普通版本不同。 VM XAMPP interface looks like this.
如果您正在使用VM XAMPP,请将其卸载并安装correct XAMPP version here.
一旦我安装了新版本php artisan migrate
,就可以使用。
答案 5 :(得分:0)
如果您正在使用MAMP,则在.env
文件中:
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=root
DB_PASSWORD=root
答案 6 :(得分:0)
我当时使用的是Vagrant机器来运行整个程序,但是我错误地在自己的机器上运行命令。这可能会对某人有所帮助。
答案 7 :(得分:0)
如果有人在使用Docker时遇到了这种情况,那么我有一个多阶段构建,第一个容器运行依赖项安装,第二个容器只是运行时。我没有意识到的是,使用Laravel脚本进行的安装会生成一个缓存的配置(bootstrap/cache/config.php
),该配置用于代替config/database.php
文件。
最后一步将以下内容添加到Dockerfile中:
RUN php artisan config:clear