Php Laravel 5在现有数据库上迁移
我有一个使用不同框架制作的现有数据库,现在我正在扩展该功能,使LaravelAPI能够与该数据库一起工作。我已成功连接到数据库,并且API响应正确(这意味着Php Laravel 5在现有数据库上迁移,php,mysql,laravel,Php,Mysql,Laravel,我有一个使用不同框架制作的现有数据库,现在我正在扩展该功能,使LaravelAPI能够与该数据库一起工作。我已成功连接到数据库,并且API响应正确(这意味着.env值设置正确),但是在尝试执行新迁移时,我遇到了一个错误 这就是我得到的错误: Illumb\Database\QueryException:SQLSTATE[HY000][2002] 操作超时(SQL:select*from information\u schema.tables 其中,表\u schema=xxx,表\u name=
.env
值设置正确),但是在尝试执行新迁移时,我遇到了一个错误
这就是我得到的错误:
Illumb\Database\QueryException:SQLSTATE[HY000][2002]
操作超时(SQL:select*from information\u schema.tables
其中,表\u schema=xxx,表\u name=l\u迁移)
在
/Users/xxx/Projects/xxx/vendor/laravel/framework/src/light/Database/Connection.php:664
660 |//如果在尝试运行查询时发生异常,我们将格式化错误
661 |//包含SQL绑定的消息,这将导致此异常
662 |//对开发人员的帮助要大得多,而不仅仅是数据库的错误。
663 |捕获量(例外$e){
664 |抛出新的QueryException(
665 |$query,$this->prepareBindings($bindings),$e
666| );
667| }
668|
异常跟踪:
1异常::(“SQLSTATE[HY000][2002]操作超时”)
/Users/xxx/Projects/xxx/vendor/laravel/framework/src/light/Database/Connectors/Connector.php:70
2 PDO::_构造(“mysql:host=192.168.0.1;port=3306;dbname=xxx”,
“xxx”、“xxx”、[])
/Users/xxx/Projects/xxx/vendor/laravel/framework/src/light/Database/Connectors/Connector.php:70
我还尝试过执行php artisan migrate:install
,但无法创建migrations
表,我想这就是问题所在
另一方面,我在.env
中使用了DB_前缀
,并在database.php
中进行了如下设置:
'prefix' => env('DB_PREFIX', '')
另一方面,DB位于单独的Docker容器中 如果您使用apache,请在apache配置文件中将超时时间增加到600或1000 我猜您的laravel环境无法找到/连接到数据库。检查您的DB主机、端口以及是否可以从其他docker实例访问它(在脚本或其他内容中ping它)。另外,确保Mysql数据库允许从localhost外部连接指定用户。不幸的是,我无法给出docker特定的答案,但您至少可以调试一下,看看在单独的docker容器上使用DB是否确实是问题所在,如果是,请针对这种docker情况专门寻求帮助。是的,但奇怪的是,我可以从DB获取数据。因此,连接和凭据不应该是问题
Model::all()
实际上从同一数据库获取所有模型。您是否检查了该用户的权限?也许用户没有创建权限?除此之外,我没有更多的建议。