2016-10-08 4 views
0

내 웹 서버를 원격 데이터베이스 (MySQL)에 연결하려고합니다. yii2에 구축 된 웹 응용 프로그램에서 연결이 발생합니다.Yii2 원격 데이터베이스 연결 문제

모든 사용자 세부 정보를 작성하고 모든 호스트에 권한을 부여하고 모든 호스트로부터 허용 된 연결 (%) (점진적으로 문제를 해결합니다). Imgur

이제 가정에서 HeidiSQL을 사용하거나 Mysql Workbench를 사용하여 문제없이 연결할 수 있습니다. 집에서도 빈 yii2 사이트를 만들었지 만 즉시 작동하지만 사이트를 웹 서버에 즉시 업로드하면 동일한 문제가 발생합니다.

Database Exception – yii\db\Exception 

SQLSTATE[HY000] [2003] Can't connect to MySQL server on '46.105.111.111' (110) 
↵ 
Caused by: PDOException 

SQLSTATE[HY000] [2003] Can't connect to MySQL server on '46.105.111.111' (110) 

in /home/xxxxxxx/xtest.xxxxxxxx.tv/vendor/yiisoft/yii2/db/Connection.php at line 602 

것은 내가 DB 서버에서 netstat 실행 한 : Imgur

내가 겪었을 등/mysql을/my.cnf의

<pre>[client] 
port   = 3306 
socket   = /var/run/mysqld/mysqld.sock 


[mysqld_safe] 
socket   = /var/run/mysqld/mysqld.sock 
nice   = 0 

[mysqld] 

user   = mysql 
pid-file  = /var/run/mysqld/mysqld.pid 
socket   = /var/run/mysqld/mysqld.sock 
port   = 7999 
basedir   = /usr 
datadir   = /var/lib/mysql 
tmpdir   = /tmp 
lc-messages-dir = /usr/share/mysql 
skip-external-locking 

#bind-address   = * 
key_buffer    = 16M 
max_allowed_packet  = 64M 
thread_stack   = 192K 
thread_cache_size  = 8 

myisam-recover   = BACKUP 

query_cache_limit  = 1M 
query_cache_size  = 16M 

expire_logs_days  = 10 
max_binlog_size   = 100M 

max_connections  = 65535 
open-files-limit = 65535 
max_connect_errors = 65535 
innodb_buffer_pool_size = 1G 
table_open_cache = 1000 

innodb_flush_log_at_trx_commit = 0 
innodb_flush_method = O_DIRECT 

tmp_table_size = 256M 
max_heap_table_size = 256M 

[mysqldump] 
quick 
quote-names 
max_allowed_packet  = 16M 

[mysql] 

[isamchk] 
key_buffer    = 16M</pre> 

나는 iptables를 살펴 보았다 : Imgur

나는 mysql 보안에 관한 약 20 개의 정보를 읽었을 때 완전히 혼란 스럽다. 권한 문제가 발생했습니다.

나는 심지어 내 자신의 PDO 래퍼를 사용해 보았습니다. 그래서 99 % 확실한 Yii2 문제가 아니라면 정말 도움이됩니다.

바라기를 나는 충분히 downvote를 가지고 있기 때문에 충분한 정보를 제공했다.

+0

mysql을 사용하여 원격으로 연결할 수 있습니까? 당신은 원격 mysql 연결을 켭니까? –

+0

예, 위와 같이 원격 연결이 활성화되어 있고 사실상 집에서 문제없이 연결할 수 있습니다. –

+0

netstat에 포트 3306이 없어야합니까? 오, 맞습니다. 7999로 설정되었습니다. – Bizley

답변

0

많은 도움에 감사드립니다.

웹 호스트가 실제로 연결을 위해 나가는 포트를 차단하고있는 것으로 나타났습니다.

yii의 데이터베이스 오류로 인한 출력 오류로 인해 문제가 데이터베이스 끝에 있다고 생각하게되었습니다.

질문을 읽을 때 간단한 논리.

나는이 질문을하는 사람이라면 통신이 양방향이라는 연결 문제를 기억하고 연결의 양쪽 끝을 확인하십시오.