我正在尝试使用我的 php yii 应用程序中的SSL连接到远程MySQL Server。我能够建立连接,并在使用以下命令
从YII控制台进行查询DB./yii script.
但是,当我尝试使用以下命令
在服务器上运行它时,完全相同的脚本无效php yii serve --port = 8090
我得到以下错误:
yii base errorexception:mysqli_real_connect((:( hy000/1045(:用户'username'@'ip'(使用密码:是(。
我通过从两个地方打印phpInfo()
来验证PHP设置,并且相同。因此,我无法理解这里可能是什么问题。我非常感谢任何帮助/指示解决这个问题。
规格:php 7.1.28,yii2
更新1
所讨论的应用程序具有其自己的特定DB,我正在连接使用PDO(很好(。然后是这个远程MySQL Server,由于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/mysql/error.log'。
只需按CTRL Z或CTRL C即可中断和退出过程
mysql -u root
欢迎来到MySQL显示器。命令以;或 g。您的MySQL连接ID是2个服务器版本:5.7.8-RC MySQL社区服务器(GPL(
版权所有(C(2000,2015,Oracle和/或其分支机构。保留所有权利。
Oracle是Oracle Corporation和/或其分支机构的注册商标。其他名称可能是其各自所有者的商标。
键入'help;'或" h"寻求帮助。键入' c'清除当前输入语句。
mysql> use mysql;
阅读表格信息以完成表格和列名称,您可以关闭此功能,以获取更快的启动使用-a
数据库更改
mysql> update user set authentication_string=password('password') where user='root';
查询OK,受影响4行,1个警告(0.03秒(行匹配:4个更改:4个警告:1
mysql> flush privileges;
查询好的,0行影响(0.00 sec(
mysql> quit
bye
sudo /etc/init.d/mysql stop
.. 180102 11:37:12 mysqld_safe mysqld来自pid file/var/run/mysqld/mysqld/mysqld.pid结束。* MySQL社区服务器5.7.8-RC停止Arif@ubuntu:〜$ sudo/etc/init.d/mysql start .. * MySQL社区服务器5.7.8-RC启动
mysql -u root -p
Enter password:
欢迎来到MySQL显示器。命令以;或 g。您的MySQL连接ID是2个服务器版本:5.7.8-RC MySQL社区服务器(GPL(
MySQL 5.7 版本之后,列密码被MySQL.user表替换为名称Authentication_string。