php mysql ssl 连接失败,访问被拒绝错误

标签 php mysql ssl yii2

我正尝试从我的 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 设置,它是相同的。 所以我无法理解这里可能是什么问题。我将非常感谢解决此问题的任何帮助/指示。

specification : 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) 作为输出。 不确定为什么我的应用程序没有选择常量。

最佳答案

打开新终端

sudo /etc/init.d/mysql stop ... MySQL Community Server 5.7.8-rc is stopped

sudo mysqld_safe --skip-grant-tables &这将跳过所有授予级别的权限并以安全模式启动 mysql 有时进程卡住只是因为

grep:写入错误:管道损坏 180102 11:32:28 mysqld_safe 记录到“/var/log/mysql/error.log”。

只需按 Ctrl+Z 或 Ctrl+C 即可中断并退出进程

mysql -u root

欢迎使用 MySQL 监视器。命令以 ; 结尾或\g。您的 MySQL 连接 ID 是 2 服务器版本:5.7.8-rc MySQL Community Server (GPL)

版权所有 (c) 2000、2015,Oracle 和/或其附属公司。保留所有权利。

Oracle 是 Oracle Corporation 和/或其附属公司的注册商标。其他名称可能是其各自所有者的商标。

键入“帮助;”或 '\h' 寻求帮助。输入'\c'清除当前输入语句。

mysql> use mysql;

读取表信息以完成表名和列名您可以关闭此功能以使用-A 更快地启动

数据库已更改

mysql> update user set authentication_string=password('password') where user='root'; 查询正常,4 行受影响,1 条警告(0.03 秒)匹配的行:4 更改的:4警告:1

mysql> flush privileges; 查询正常,0 行受影响(0.00 秒)

mysql> 退出 再见

sudo /etc/init.d/mysql stop

..180102 11:37:12 mysqld_safe mysqld 来自 pid 文件/var/run/mysqld/mysqld.pid 已结束。 * MySQL Community Server 5.7.8-rc 已停止 arif@ubuntu:~$ sudo/etc/init.d/mysql start .. * MySQL Community Server 5.7.8-rc 已启动

mysql -u root -p

Enter password:

欢迎使用 MySQL 监视器。命令以 ; 结尾或\g。您的 MySQL 连接 ID 是 2 服务器版本:5.7.8-rc MySQL Community Server (GPL)

在 mysql 5.7+ 版本之后,列 password 被 mysql.user 表中的名称 authentication_string 替换。

关于php mysql ssl 连接失败,访问被拒绝错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56811649/

相关文章:

mysql - 将mysql子查询转换为join

delphi - 中继邮件时可以将服务器 SSL 证书附加到 TIdSMTPRelay 组件吗

php - 修剪字符串中的多个换行符和多个空格?

php - 从mysql数据库获取自增id

javascript - 当用户关闭浏览器时 session 关闭时,我可以立即将信息打印到数据库吗?

php - 如何在 ini_set 或 .htaccess 的帮助下启用 openssl?

python - pymongo [SSL : CERTIFICATE_VERIFY_FAILED]: certificate has expired on Mongo Atlas

php - 没有MySQL可以在网站内搜索任何单词吗?

php - PHP/MySQL 不支持大写

mysql - 获取每个类别的最后五条记录