Yii2远程数据库连接问题

时间:2016-10-08 12:28:09

标签: mysql database yii2 connection

我正在尝试让我的Web服务器连接到我的远程数据库(Mysql)。 连接发生在我的Web应用程序中,该应用程序构建在yii2上。

我已经创建了所有用户详细信息,GRANTED所有权限和允许来自所有主机的连接(%)(逐步进行故障排除)。 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

我已经通过了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

由于已经阅读了大约20条关于mysql安全性的信息,我完全被困住了,我感觉它是一个权限问题。

我甚至尝试过使用自己的PDO Wrapper,所以我99%肯定它不是Yii2问题,非常感谢任何帮助。

希望我提供了足够的信息,因为我之前有一个downvote。

1 个答案:

答案 0 :(得分:0)

非常感谢你的帮助。

事实证明,Web主机实际上阻止了连接的传出端口。

yii的输出错误是数据库错误,nievly让我认为问题出在数据库端。

回读问题时的简单逻辑。

我会对发现此问题的任何人说,请记住连接问题,通信是双向的,检查连接的两端。