반응형
원격 데이터베이스가 있는 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
반응형
'programing' 카테고리의 다른 글
'div'의 알려진 속성이 아니므로 'aria-value now'에 바인딩할 수 없습니다. (0) | 2023.09.08 |
---|---|
nodejs express, ajax posting with jquery 및 수신 응답 (0) | 2023.09.08 |
라틴 1 콜렉션 느린 쿼리가 있는 테이블, utf8mb4로 빠름 - 왜? (0) | 2023.09.08 |
Laravel 삭제 쿼리 작성기 (0) | 2023.09.08 |
이진 로그에 기록하지 않고 MYSQL에서 쿼리를 실행하는 방법 (0) | 2023.09.08 |