【发布时间】:2019-06-28 18:24:37
【问题描述】:
我正在尝试使用 PHP Yii 应用程序中的 ssl 连接到远程 Mysql 服务器。 我能够建立连接并能够在 yii 控制台使用以下命令查询数据库
./yii script.
但是,当我尝试使用以下命令在服务器上运行它时,完全相同的脚本不起作用
php yii serve --port = 8090
我收到以下错误:
yii\base\ErrorException: mysqli_real_connect(): (HY000/1045): Access denied for user 'userName'@'IP' (using password: YES).
我已经通过从两个地方打印phpInfo() 验证了php 设置,并且它是相同的。
所以我无法理解这里可能是什么问题。我非常感谢任何帮助/指针来解决这个问题。
规格:php 7.1.28, Yii2
更新 1
有问题的应用程序有自己的特定数据库,我使用 PDO 连接到它(没关系)。然后是这个远程 Mysql 服务器,由于 SSL 对等匹配问题,我无法使用 PDO 进行连接。我已经尝试过这个解决方法
PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => False
但该常数在 PDO 中不存在。但是,如果我这样做
php -r ‘var_dump(PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT);’
我得到 int(1014) 作为输出。 不知道为什么我的应用程序没有选择常量。
【问题讨论】:
-
不要为您的端口参数添加空格:
--port=8090。然后,您必须授予用于连接的用户和 IP 的访问权限。 -
我可以通过控制台为同一个用户连接,所以这不完全是权限问题。我假设由于 Yii 配置存在一些问题,但我无法弄清楚是什么。
-
你没有在问题中显示任何 Yii 配置。
-
可能是我没有正确表达我的问题,请阅读更新。