我想使用数据库从另一个服务器到我的本地主机laravel项目。我配置.env文件和config\database.php文件,如下所示。我能够访问本地数据库,但无法访问外部数据库。我收到错误:“拒绝用户'ExecUser'@'localhost‘的SQLSTATEHY000访问”(使用密码:是) (SQL: select * from )
DB_CONNECTION_SECOND=mysql
DB_HOST_SECOND=180.48.10.222
DB_PORT_SECOND=3306
DB_DATABASE_SECOND=nsu
DB_USERNAME_SECOND=ExeUs
DB_PASSWORD_SECOND=******
'mysql2' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '180.48.10.222'),
'port' => env('DB_PORT', '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,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
], 发布于 2021-12-02 08:17:31
根本原因:您忘记更改主机,将端口更改为另一个主机。
请更新代码如下:
'mysql2' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST_SECOND'),
'port' => env('DB_PORT_SECOND'),
'database' => env('DB_DATABASE_SECOND'),
'username' => env('DB_USERNAME_SECOND'),
'password' => env('DB_PASSWORD_SECOND'),
'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'),
]) : [],
], 发布于 2021-12-02 07:33:34
由于您使用的是第二个连接,您还必须更改主机和url信任的第二个连接。目前的问题是,url和host指向本地主机DB_HOST和DB_PORT .env变量。
它们应该分别指向DB_HOST_SECOND和DB_PORT_SECOND。
https://stackoverflow.com/questions/70195302
复制相似问题