2016-10-08 18 views
0

Webサーバーをリモートデータベース(Mysql)に接続しようとしています。 yii2上に構築されているWebアプリケーションで接続が行われています。Yii2リモートデータベース接続の問題

すべてのユーザーの詳細を作成し、すべての権限を許可し、すべてのホスト(%)からの接続を許可しました(これを逐次的にトラブルシューティングします)。 Imgur

ここでは、HeidiSQLを使用して家庭から接続するか、問題なしでMysql Workbenchを使用して接続できます。 私は自宅で空のyii2サイトを作成してもすぐに動作しますが、Webサーバーにサイトを即座にアップロードすると同じ問題が発生します。

私はDBサーバでnetstatを実行した
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 

Imgur

Iは/ etc 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個の情報を読んでいると驚いています。私はfeそのパーミッションの問題が解消されました。

自分のPDOラッパーを使ってみたこともありますので、99%はYii2の問題ではないと確信しています。

私が以前にdownvoteを持っていたので十分な情報を提供してくれたらと思っています。

+0

mysqlを使用すると、リモートから接続できますか?リモートのmysql接続を有効にしますか? –

+0

上記のように、リモート接続が有効になっており、実際には問題なく家に接続できます。 –

+0

netstatにポート3306はないはずですか?ああ、それは7999に設定されています。 – Bizley

答えて

0

多くのご協力ありがとうございます。

ウェブホストが実際に接続用の送信ポートをブロックしていたことが判明しました。

yiiの出力エラーがデータベースエラーであったため、問題がデータベースの最後にあると思いました。

質問を読んだときのシンプルなロジック。

私はこの質問を見つけた人には、通信が双方向であるという接続の問題を覚えておいて、接続の両端を確認してください。