2017-03-29 2 views
1

AWS에서 Google Cloud로 프로젝트를 마이그레이션했습니다. 이전에 작동하는 애플리케이션이 있었지만 GCP로 마이그레이션 한 후 mysqli_connect이 더 이상 작동하지 않는 것 같습니다.MySQL은 터미널에서 작동하지만 PHP에서는 작동하지 않습니다.

  1. PHP-MySQL의-5.4.16-42.el7.x86_64
  2. PHP-PDO-5.4.16-42.el7.x86_64
  3. PHP- : 지금까지, 나는 다음을 설치 한 5.4.16-42.el7.x86_64
  4. PHP-공통 5.4.16-42.el7.x86_64
  5. PHP-CLI-5.4.16-42.el7.x86_64
  6. mariadb-libs와-5.5. 52-1.el7.x86_64
  7. mariadb-5.5.52-1.el7.x86_64

터미널을 사용하여 MySQL에 액세스 할 수 있지만 PHP를 사용하여 원격 데이터베이스 (AWS RDS)에 연결할 수 없습니다. RDS 데이터베이스는 IP 연결에 대한 제한이 없으며 전세계에 개방되어 있습니다. 나는 PHP, MySQL, MariaDB를 완전히 제거하려고 노력했지만 성공하지 못했습니다. 데이터베이스에 연결하는 스크립트는 이주 이후에 변경되지 않습니다. mysqli_fetch_assocmysqli_query과 같은 다른 함수는 오류를 발생시키지 않습니다.

170329 07:20:15 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended 
170329 07:31:09 mysqld_safe Logging to '/var/log/mysqld.log'. 
170329 07:31:09 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 
2017-03-29 07:31:09 0 [Warning] s deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 
2017-03-29 07:31:09 0 [Note] /usr/sbin/mysqld (mysqld 5.6.35) starting as process 32611 ... 
2017-03-29 07:31:09 32611 [Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 5000) 

2017-03-29 07:31:09 32611 [Warning] Buffered warning: Changed limits: table_open_cache: 431 (requested 2000) 

2017-03-29 07:31:09 32611 [Note] Plugin 'FEDERATED' is disabled. 
2017-03-29 07:31:09 32611 [Note] InnoDB: Using atomics to ref count buffer pool pages 
2017-03-29 07:31:09 32611 [Note] InnoDB: The InnoDB memory heap is disabled 
2017-03-29 07:31:09 32611 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 
2017-03-29 07:31:09 32611 [Note] InnoDB: Memory barrier is not used 
2017-03-29 07:31:09 32611 [Note] InnoDB: Compressed tables use zlib 1.2.3 
2017-03-29 07:31:09 32611 [Note] InnoDB: Using Linux native AIO 
2017-03-29 07:31:09 32611 [Note] InnoDB: Using CPU crc32 instructions 
2017-03-29 07:31:09 32611 [Note] InnoDB: Initializing buffer pool, size = 128.0M 
2017-03-29 07:31:09 32611 [Note] InnoDB: Completed initialization of buffer pool 
2017-03-29 07:31:09 32611 [Note] InnoDB: Highest supported file format is Barracuda. 
2017-03-29 07:31:09 32611 [Note] InnoDB: 128 rollback segment(s) are active. 
2017-03-29 07:31:09 32611 [Note] InnoDB: Waiting for purge to start 
2017-03-29 07:31:09 32611 [Note] InnoDB: 5.6.35 started; log sequence number 1626037 
2017-03-29 07:31:09 32611 [Note] Server hostname (bind-address): '*'; port: 3306 
2017-03-29 07:31:09 32611 [Note] IPv6 is available. 
2017-03-29 07:31:09 32611 [Note] - '::' resolves to '::'; 
2017-03-29 07:31:09 32611 [Note] Server socket created on IP: '::'. 
2017-03-29 07:31:09 32611 [Note] Event Scheduler: Loaded 0 events 
2017-03-29 07:31:09 32611 [Note] /usr/sbin/mysqld: ready for connections. 
Version: '5.6.35' socket: '/var/lib/mysql/mysql.sock' port: 3306 MySQL Community Server (GPL) 
+1

mysqld_log가 정상적으로 보입니다. 연결할 때 어떤 오류가 PHP 스크립트에서 인쇄됩니까? – Dimi

+1

터미널을 통해 MySQL에 연결할 수 있다면 문제는 실제로 MySQL과 다를 수 있습니까? – Shadow

+0

혼란 스럽습니다. @Dimi –

답변

0

당신은 mysqli_connect를 사용하는 것이 쓰기,하지만 당신은 PHP-MySQL의-5.4.16-42.el7.x86_64를 설치 한 (참고 : 없음 'I') 여기 mysqld_log의 내용이다. PHP를 연결하려면 mysqli 패키지가 필요하다.

+0

오, 그게 문제가 아니에요. 다른 데이터베이스 라이브러리 (mysql_connect 또는 pdo)로 시도 할 수 있습니다. 작동한다면 라이브러리 문제입니다. 작동하지 않으면 연결 문제입니다. 데이터베이스가 없거나 자격 증명이 올바르지 않습니다. –