【问题标题】:Php app refused access to database, but same credentials work from CLIPhp 应用程序拒绝访问数据库,但 CLI 使用相同的凭据
【发布时间】:2020-10-30 01:30:29
【问题描述】:

我正在尝试建立一个名为CollectiveAccessProvidence 的内容管理系统,但目前我一直坚持让 php 应用程序在数据库上进行身份验证。初始安装页面指示对数据库进行身份验证时出现问题:

Fatal error: Uncaught DatabaseException: Access denied for user 'providenceuser'@'localhost' to database 'providencedb' in /var/www/html/providence/app/lib/Db/mysqli.php:144 Stack trace: #0 /var/www/html/providence/app/lib/Db.php(134): Db_mysqli->connect() #1 /var/www/html/providence/app/lib/Db.php(108): Db->connect() #2 /var/www/html/providence/app/lib/ConfigurationCheck.php(103): Db->__construct() #3 /var/www/html/providence/install/inc/page1.php(44): ConfigurationCheck::performInstall() #4 /var/www/html/providence/install/index.php(148): require_once('/var/www/html/p...') #5 {main} thrown in /var/www/html/providence/app/lib/Db/mysqli.php on line 144

出于测试目的,此问题使用db-connect-test.php,它也有问题,但我能够通过。 在第一次尝试测试应用时,我被拒绝访问。

dev-admin@devtest:~$ php -f php_db_test/db-connect-test.php
PHP Warning:  mysqli_connect(): (HY000/1698): Access denied for user 'root'@'localhost' in /home/dev-admin/php_db_test/db-connect-test.php on line 10

当我以超级用户身份运行相同的命令时,我可以连接,因为它报告正确:

There are no tables<br />

使用测试应用程序,如果我更改了数据库用户“root”并将密码留空为“”,我似乎能够连接:

但是,同样的事情对普罗维登斯不起作用,仍然给我一个“拒绝访问”。

我认为可能是连接类型有问题,所以我跑了:

UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'providenceuser' AND plugin IN ('unix_socket', 'auth_socket');

FLUSH PRIVILEGES;

但是,没有帮助。 我也尝试将配置文件中的“localhost”更改为127.0.0.1,但没有成功。

我还能尝试什么,或者我还能在哪里寻找线索?

【问题讨论】:

  • 你是在本地机器上测试这个还是托管?
  • 托管,通过ssh访问,数据库和网络服务器都在localhost上。
  • 您是否尝试过创建数据库用户并使用这些凭据?
  • 是的,我创建了数据库,并且可以使用 php 中指定的同一用户从 shell 登录。
  • 不显示用户名/密码等你的连接脚本是什么?

标签: mysql privileges


【解决方案1】:

似乎问题在于我如何创建数据库:

GRANT ALL ON providencedb TO 'providenceuser'@'localhost' IDENTIFIED BY 'passw0rd' WITH GRANT OPTION;

当我像这样重新创建它时,我能够安装:

GRANT ALL ON providencedb.* TO 'providenceuser'@'localhost' IDENTIFIED BY 'passw0rd' WITH GRANT OPTION;

我能够继续安装。新安装的其他不同之处在于我使用的是 Ubuntu 18.04 和 php7.2。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-06
    • 1970-01-01
    • 2018-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多