Php 如何从Laravel Homestead连接到远程数据库?

Php 如何从Laravel Homestead连接到远程数据库?,php,mysql,laravel,laravel-5.5,homestead,Php,Mysql,Laravel,Laravel 5.5,Homestead,我目前正在从事一个在Windows10上使用Homestead的Laravel5.5项目。 这种情况是:我的应用程序需要从物理机器上的外部数据库读取数据(只读,不写)。因为在生产环境中,此应用程序有自己的数据库,并且还需要从远程数据库获取数据。此外部数据库使用XAMPP托管在localhost上 我在互联网上搜索过,没有找到任何适用于我的情况的答案。我现在完全糊涂了。我是一名编程新手,所以谁能给我一些关于如何配置以实现这一点的提示?非常感谢你 [更新] 关于我正在使用的此应用程序: 这是一个w

我目前正在从事一个在Windows10上使用Homestead的Laravel5.5项目。 这种情况是:我的应用程序需要从物理机器上的外部数据库读取数据(只读,不写)。因为在生产环境中,此应用程序有自己的数据库,并且还需要从远程数据库获取数据。此外部数据库使用XAMPP托管在localhost上

我在互联网上搜索过,没有找到任何适用于我的情况的答案。我现在完全糊涂了。我是一名编程新手,所以谁能给我一些关于如何配置以实现这一点的提示?非常感谢你


[更新] 关于我正在使用的此应用程序: 这是一个web应用程序,允许图书馆员和学术支持人员记录每项服务的详细信息,比如哪个学生进来询问如何做参考咨询等

它只会在我的学校内运行,有点像一个内部应用程序?不管怎么说,校外没有人可以访问它,而且它只供教职员工使用,不供学生使用。 这个应用程序有自己的本地数据库来存储员工帐户和服务详细信息,而且正如我上面提到的,它需要从学校数据库中获取学生信息,因为现在在开发过程中,我在我的物理机器上设置了一个数据库作为学校数据库,并在其中转储了一些虚拟数据

然后,我使用命令行创建了一个名为Student的新模型。当我尝试使用php tinker从外部数据库读取数据时,它显示如下错误:

>>> App\Modles\Student::all()
PHP Fatal error:  Class 'App/Modles/Student' not found in Psy Shell code on line 1

下面是我的Student.php、.env和database.php文件

App/Models/Student.php

 <?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Student extends Model
{
    protected $connection = 'mysql_campus';
}
database.php:

    ......
    'connections' => [

    'sqlite' => [
        'driver' => 'sqlite',
        'database' => env('DB_DATABASE', database_path('database.sqlite')),
        'prefix' => '',
    ],

    //Local Database
    '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', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
    ],

    //External Database
    'mysql_campus' => [
        'driver' => 'mysql',
        'host' => env('DB_EXT_HOST', '10.0.2.2'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_EXT_DATABASE', 'forge'),
        'username' => env('DB_EXT_USERNAME', 'forge'),
        'password' => env('DB_EXT_PASSWORD', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
    ],
    ......

您应该能够从您的家园连接到10.0.2.2以访问主机。这是主机的标准环回地址。这有点像连接到127.0.0.1或本地数据库的本地主机。

您应该能够从您的家园连接到10.0.2.2以访问主机。这是主机的标准环回地址。这有点像连接到127.0.0.1或本地数据库的本地主机。

我的laravel版本是5.1

您可以编辑.env文件并用远程数据库主机替换DB_主机值


另一种方法是编辑config/database.php文件。

我的laravel版本是5.1

您可以编辑.env文件并用远程数据库主机替换DB_主机值


另一种方法是编辑config/database.php文件。

能否显示.env文件中的内容欢迎使用SO。它与编程有关吗?您可以显示您的代码吗?代码更新以及一些附加信息您可以显示.env文件上的内容欢迎访问SO。它与编程有关吗?你能展示一下你的代码吗?代码更新了,还有一些额外的信息。非常感谢!现在我一直在研究如何连接外部数据库。我已经更新了一些关于我正在进行的项目以及代码的信息,您介意看一下吗?您可以尝试以下内容:。。。只需为第二次连接输入不同的连接详细信息。谢谢!您的回复帮助我连接到主机上运行的Meilisearch服务。上帝保佑你,非常感谢你!现在我一直在研究如何连接外部数据库。我已经更新了一些关于我正在进行的项目以及代码的信息,您介意看一下吗?您可以尝试以下内容:。。。只需为第二次连接输入不同的连接详细信息。谢谢!您的回复帮助我连接到主机上运行的Meilisearch服务。上帝保佑你,好人
    ......
    'connections' => [

    'sqlite' => [
        'driver' => 'sqlite',
        'database' => env('DB_DATABASE', database_path('database.sqlite')),
        'prefix' => '',
    ],

    //Local Database
    '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', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
    ],

    //External Database
    'mysql_campus' => [
        'driver' => 'mysql',
        'host' => env('DB_EXT_HOST', '10.0.2.2'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_EXT_DATABASE', 'forge'),
        'username' => env('DB_EXT_USERNAME', 'forge'),
        'password' => env('DB_EXT_PASSWORD', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
    ],
    ......