처음에는 cakephp 3 응용 프로그램에 로컬 mysql 데이터베이스를 사용하고 모든 것이 정상적으로 작동하고있었습니다. 나는 cakephp3 응용 프로그램을 배포하는 과정에 있으므로 RDS MySql 인스턴스를 만들고이를 MySql Workbench에 연결하고 이전에 RDS 데이터베이스에 있던 데이터베이스를 복사했습니다. 내 app.php의 설정은 그렇게 비슷합니다. CakePHP3 AWS RDS 데이터베이스의 응용 프로그램 오류
은 내가 RDS 인스턴스에 연결되어 있다고 나는 AWS 콘솔에서 app.php 파일'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => RDS_HOSTNAME,
/**
* CakePHP will use the default DB port based on the driver selected
* MySQL on MAMP uses port 8889, MAMP users will want to uncomment
* the following line and set the port accordingly
*/
//'port' => 'non_standard_port_number',
'username' => RDS_USERNAME,
'password' => RDS_PASSWORD,
'database' => RDS_DB_NAME,
'encoding' => 'utf8',
'timezone' => 'UTC',
'flags' => [],
'cacheMetadata' => true,
'log' => false,
의 데이터 소스 섹션에서 다음
if (!defined('RDS_HOSTNAME')) {
define('RDS_HOSTNAME', $_SERVER['myendpoint.us-west-1.rds.amazonaws.com']);
define('RDS_USERNAME', $_SERVER['myusername']);
define('RDS_PASSWORD', $_SERVER['mypassword']);
define('RDS_DB_NAME', $_SERVER['my_db']);
}
이 내 상수를 정의하려면 . 그러나 등록/로그인을 시도 할 때 CakePHP 내부 오류가 발생했습니다. 그런 다음 오류 로그를 확인하고이를 error.log 파일에서 찾았습니다.
2016-06-20 17:25:35 Error: [PDOException] SQLSTATE[HY000] [1045] Access denied for user ''@'localhost' (using password: NO)
Request URL: /users/register
Referer URL: http://localhost:8765/
Client IP: 127.0.0.1
Stack Trace:
#0 /home/danielparkk/Desktop/SubReminder/vendor/cakephp/cakephp/src/Database/Driver/PDODriverTrait.php(47): PDO->__construct('mysql:host=;por...', NULL, NULL, Array)
#1 /home/danielparkk/Desktop/SubReminder/vendor/cakephp/cakephp/src/Database/Driver/Mysql.php(90): Cake\Database\Driver\Mysql->_connect('mysql:host=;por...', Array)
내가 잘못하고있는 것을 이해하지 못합니까? 데이터베이스의 로컬 복사본으로 다시 전환하면 모든 기능이 제대로 작동합니다. 어떤 도움을 주시면 감사하겠습니다.
=====================
2016-06-21T00:22:17.815360Z 24 [Note] Access denied for user 'root'@'108-83-57-226.lightspeed.irvnca.sbcglobal.net' (using password: NO)
2016-06-21T00:34:38.776248Z 26 [Note] Aborted connection 26 to db: 'subscriptions_db' user: 'root' host: '108-83-57-226.lightspeed.irvnca.sbcglobal.net' (Got timeout reading communication packets)
2016-06-21T00:34:42.872265Z 25 [Note] Aborted connection 25 to db: 'subscriptions_db' user: 'root' host: '108-83-57-226.lightspeed.irvnca.sbcglobal.net' (Got timeout reading communication packets)
내 인스턴스의 AWS 콘솔에서 오류 로그를 읽을 때이 출력이 표시됩니다. 솔직히, 이것이 RDS를 처음 사용하는 것이므로 어떤 의미인지는 모르지만 다른 사람들에게 도움이 될 수 있습니다.