将我的Laravel连接到外部数据库

时间:2019-07-05 06:30:22

标签: php mysql laravel

如何将laravel连接到外部数据库?

示例:我在运行于xammp的本地计算机上安装了一个laravel。而且我希望它连接到云服务器数据库。

5 个答案:

答案 0 :(得分:2)

.env 文件中,您可以使用数据库名称设置DB_CONNECTION,并在/config/database.php中提供适用的数据库,之后是(SQLite,MySQL,pgSQL,SQLSRV)只需键入您的用户名密码数据库名称,您就可以将该数据库与端口号一起使用。

答案 1 :(得分:1)

在.env(位于根文件夹中)中,使用外部数据库连接相应地更改凭据以下的凭据:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

并且在config / database.php中,如果尝试与外部MySQL连接,请更改以下凭据,否则其他选项会更多,或者请提及您要与哪个数据库连接

'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            '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' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],

答案 2 :(得分:1)

打开.env文件并进行编辑。只需设置正确的外部数据库凭据:

DB_CONNECTION=mysql 
DB_HOST=127.0.0.1         // set external DB_Host 
DB_PORT=3306             // Your Database Port
DB_DATABASE=            // Your Database Name
DB_USERNAME=           // Your Database Username
DB_PASSWORD=          // Your Database Password
如果在安装时没有默认用户名,则应将

DB_USERNAME设置为 root

如果未在数据库上设置密码,只需清除DB_PASSWORD

.env编辑后,必须清除缓存:

php artisan config:cache

答案 3 :(得分:0)

.env

DB_CONNECTION_SECOND=mysql
DB_HOST_SECOND=127.0.0.1
DB_PORT_SECOND=3306
DB_DATABASE_SECOND=laravel
DB_USERNAME_SECOND=root
DB_PASSWORD_SECOND=

config / database.php

'mysql_second' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST_SECOND', '127.0.0.1'),
            'port' => env('DB_PORT_SECOND', '3306'),
            'database' => env('DB_DATABASE_SECOND', 'forge'),
            'username' => env('DB_USERNAME_SECOND', 'forge'),
            'password' => env('DB_PASSWORD_SECOND', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
        ],

如果您使用的是模型

添加此行

protected $connection = "mysql_second";

如果您正在使用Facades

DB::connection('mysql_second')->table('table_name')->get();

答案 4 :(得分:0)

1.启用 MYSQL 远程

首先,您需要阅读您的托管文档以获取您的服务器数据以及通过将您的 IP 列入白名单来为您的本地 IP 启用 mysql 远程的说明,或者如果您想允许访问任何人,您可以使用通配符 %< /p>

就我而言,HostGator:https://www.hostgator.com/help/article/how-to-connect-to-the-mysql-database-remotely

2.更改 .env 配置

然后用您的托管服务提供商提供的数据填充 .env 文件。

DB_CONNECTION=mysql
DB_HOST=127.0.0.1 //replace with your external server IP
DB_PORT=3306 // check open port for mysql usually is 3306
DB_DATABASE=laravel // replace with the name of your external database
DB_USERNAME=root //replace with the username associated with database
DB_PASSWORD= //put your username password