当我们要使用php artisan migrate迁移数据表时,出错错误:
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo for mysql failed: nodename nor servname provided, or not known (SQL: select * from information_schema.tables where table_schema = example_app and table_name = kwok_migrations and table_type = 'BASE TABLE')
而在运行Larvel项目时数据库查询又是正常的,一般出现在使用官方命令安装了Docker版本。其原因其实很简单,首先打开.env配置文件可以看到:
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=example_app
DB_USERNAME=root
DB_PASSWORD=password
其中DB_HOST=mysql这项开始我也不得其解以为是设置错了,就改成了127.0.0.1,php artisan migrate是可以使用了,但Larvel项目却报错了,我就在mysql与127.0.0.1之间反复切换着。
后来了解了Docker的运行原理才知道,我使用了本地的命令来迁移数据,官方推荐的使用Docker里运行迁移命令才是正确的。但使用使用起来比较麻烦,我就想到了使用HOST映射一下。
所以我们只需要修改HOST文件即可解决这个问题:
127.0.0.1 mysql
在HOST文件里增加此项即可正常使用了。
除非注明,网络人的文章均为原创,转载请以链接形式标明本文地址:https://www.55mx.com/post/211
《Laravel数据库迁移时报错SQLSTATE[HY000] [2002] 的解决办法》的网友评论(0)