Php 无法从AWS EC2实例上运行laravel 5.2的数据库中提取
我正在关注一个系列,我一直在将用户路由到一个显示数据库信息的页面。他在使用localhost Sequel,我在AWS EC2实例上运行Mysql 这里是错误Php 无法从AWS EC2实例上运行laravel 5.2的数据库中提取,php,mysql,laravel,amazon-ec2,laravel-5.2,Php,Mysql,Laravel,Amazon Ec2,Laravel 5.2,我正在关注一个系列,我一直在将用户路由到一个显示数据库信息的页面。他在使用localhost Sequel,我在AWS EC2实例上运行Mysql 这里是错误 QueryException in Connection.php line 713: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'phpmyadmin.products_lists' doesn't exist (SQL: select * from `produ
QueryException in Connection.php line 713:
SQLSTATE[42S02]: Base table or view not found: 1146 Table
'phpmyadmin.products_lists' doesn't exist (SQL: select * from
`products_lists` where `products_lists`.`id` = 7 limit 1)
myroutes.php的内容
Route::get('product', function() {
//echo 'hello';
$product = App\products_list::find(7);
print_r($product);
});
Route::group(['middleware' => ['web']], function(){
});
我的模型的内容
namespace App;
use Illuminate\Database\Eloquent\Model;
class products_list extends Model
{
//
}
以及my.env的内容
APP_ENV=local
APP_DEBUG=true
APP_KEY=SomeRandomString
APP_URL=http://localhost
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=
DB_DATABASE=localhost
DB_USERNAME=root
DB_PASSWORD=snipsnip
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
请注意,我的错误是“phpmyadmin.products\u list”,但我不明白为什么幼虫坚持保留我以前的.env文件中的数据。
另外,我不确定APP_KEY=SomeRandomString是否正确,因为撇开数据库问题不谈,它可以正常运行
下面是我的实例的/etc/phpmyadmin/config-db.php的内容
$dbuser='phpmyadmin';
$dbpass='snipsnip';
$basepath='';
$dbname='phpmyadmin';
$dbserver='';
$dbport='';
$dbtype='mysql';
Laravel Eloquent试图访问模型本身的复数形式的表。这就是为什么你的类名是
products\u list
,它试图找到一个名为products\u list
的表。如果使用的是自定义名称,请设置表名:
namespace App;
use Illuminate\Database\Eloquent\Model;
class products_list extends Model
{
protected $table = 'your_custom_name';
}
至于密钥,只需生成您自己的:
php artisan key:generate
原来我的问题是模型 应该是的
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class products_list extends Model
{
protected $table = 'products_list';
}
使用PSR名称组织您的模型,即产品(而不是产品列表),一旦您习惯了,您将看到较少的错误
默认情况下,Model Product将查找表名“products”(模型名的复数形式),如果要更改它,请设置受保护的类var$table=“your_table_name”,尽管不建议这样做,因为如果使用关系,则必须在所有位置都设置表名,最好遵循约定
如果您的.env在运行php artisan key:generate时不影响或更新,则可能您的权限不正确
在.env上设置chmod 755,在存储和引导文件夹上设置chmod 755或777
要检查数据库连接是否正常工作,请通过artisan运行迁移
php artisan迁移
基本上,它将创建迁移表
如果仍然没有加载类,请运行composer update
composer dump auto
或php artisan optimize
将编译这些类
在ubuntu系统上,最好创建一个新用户,并使用相同的用户更新项目文件夹,而不要使用root用户(或AWS EC2上的ubuntu用户)感谢您的快速响应!我添加到受保护的表中,并获得了SQLSTATE[42S02]:未找到基表或视图:1146表“phpmyadmin.paidfor”不存在
。我向你保证这张桌子确实存在:)那么,有这样一张桌子吗?是否有数据库phpmyadmin
?在.env中,您已经声明了DB\u DATABASE=localhost
。你确定你的数据库名是locahost
?另外,当我点击key generate命令时,我得到Application key[base64:gclskkk0ae7pflmi8nztvy8bllhsg6c9zestg6auc/00=]设置成功。
这把钥匙的哪一部分放在APP_key=SomeRandomString
中,它会自动用新钥匙更新你的.env
文件。否则,您的整个安装都是错误的。您是否有.env
文件,或者您正在使用example.env
?很可能整个安装都是错误的。不久前,我将example.env
重命名为.env
。我在帖子中添加了一些新的细节(在底部),以澄清服务器的细节。我尝试将localhost替换为phpymyadmin,但没有成功。此外,是的,它不会自动更新.env
文件