programing

원격 데이터베이스가 있는 Laravel의 여러 데이터베이스

muds 2023. 9. 8. 21:47
반응형

원격 데이터베이스가 있는 Laravel의 여러 데이터베이스

저는 mariadb 데이터베이스(10.4.12)로 PHP Laravel(7.7.1) 프로젝트를 하고 있습니다.

사실, 저는 데비안 스트레치(9.11)의 가상 개인 서버에서 Macos Catalina(10.15.4)의 로컬 mariadb 데이터베이스(10.4.12)와 함께 원격 mariadb 데이터베이스(10.1.44)를 사용하려고 합니다.

문제는 제 라라벨 프로젝트가 원격 데이터베이스에 접근할 수 없다는 것입니다. 저는 ssh 터널을 사용하는 것이 가장 좋은 해결책이라고 보았지만 아무 해결책도 저에게 적용되지 않았습니다.

이것은 나의.env파일

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=name
DB_USERNAME=username
DB_PASSWORD=password

DB_CONNECTION_GAME=mysql
DB_HOST_GAME=11.22.3.444
DB_PORT_GAME=3306
DB_DATABASE_GAME=name
DB_USERNAME_GAME=username
DB_PASSWORD_GAME=password

이것은 나의database.php파일

'mysql' => [
            'driver' => env('DB_CONNECTION', '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'),
            ]) : [],
        ],

        'mysqlgame' => [
            'driver' => env('DB_CONNECTION_GAME', 'mysql'),
            'url' => env('DATABASE_URL_GAME'),
            'host' => env('DB_HOST_GAME', '127.0.0.1'),
            'port' => env('DB_PORT_GAME', '3306'),
            'database' => env('DB_DATABASE_GAME', 'forge'),
            'username' => env('DB_USERNAME_GAME', 'forge'),
            'password' => env('DB_PASSWORD_GAME', ''),
            'unix_socket' => env('DB_SOCKET_GAME', ''),
            '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'),
            ]) : [],
        ],

여기 제 데이터베이스 모델이 있습니다.

class Whitelisted extends Model
{
    /**
     * The attributes that are mass assignable.
     * @var array
     */
    protected $fillable = [
        'name', 'identifier'
    ];

    protected $connection = 'mysqlgame';

    protected $table = 'user_whitelist';
}

그리고 피널리, 여기 오류 코드가 있습니다.Illuminate

SQLSTATE[HY000] [2002] Connection refused (SQL: select * from `user_whitelist`)

하나의 로컬과 다른 하나의 원격 서버에 연결된 두 개의 데이터베이스를 가질 수 있는 가장 좋은 솔루션은 무엇입니까?

감사합니다!

언급URL : https://stackoverflow.com/questions/61641789/multiple-database-in-laravel-with-a-remote-database

반응형