【发布时间】:2018-05-28 16:34:08
【问题描述】:
我正在开发 Laravel5.4 应用程序,它有自己的数据库。对于某些业务,我需要连接到亚马逊服务器上的另一个远程数据库以读取一些数据并插入一些数据,但所有尝试都失败了。我试过了:
.env.php:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db1
DB_USERNAME=root
DB_PASSWORD=root
DB_EXT_CONNECTION=mysql
DB_EXT_HOST=xx.xx.xx.xx
DB_EXT_PORT=3306
DB_EXT_DATABASE=db2
DB_EXT_USERNAME=root
DB_EXT_PASSWORD=root
配置/数据库.php:
'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 Credentials
'ext_mysql' => [
'driver' => 'mysql',
'host' => env('DB_EXT_HOST', '127.0.0.1'),
'port' => env('DB_EXT_PORT', '3306'),
'database' => env('DB_EXT_DATABASE', 'forge'),
'username' => env('DB_EXT_USERNAME', 'forge'),
'password' => env('DB_EXT_PASSWORD', ''),
'unix_socket' => env('DB_EXT_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
我在我的控制器中尝试:
$users = DB::connection('ext_mysql')->table('users')->get();
return $users;
但是,浏览器上的连接时间太长,最后给出'Connection time out'
有人可以帮忙吗?
【问题讨论】:
-
我想第一个要问的问题是,你能使用mysql客户端连接到服务器吗?管理员、navicat、mysql 工作台?您的远程 mysql 服务器可能不接受远程连接。
-
听起来远程 MySQL 数据库可能会阻止您的 IP 连接到它。确保外部数据库允许远程 MySQL 访问。
-
如何检查外部数据库是否允许远程 MySQL 访问?
标签: php mysql laravel laravel-5 amazon-ec2