php - 与数据库连接时出现奇怪的错误

标签 php mysql database mysqli

我有一个用 php 编写的自定义应用程序,它正在连接数据库。如果我在 Windows wamp 服务器上运行它,应用程序会正确连接到数据库。如果我在 ubuntu apache2 上运行它,我会收到以下错误:

<b>Warning</b>:  mysqli::real_connect(): (28000/1045): Access denied for user 'user'@'localhost'
 (using password: YES) in <b>/var/www/html/reportCMS/php/classes/Database.class.php</b> on line <b>137
</b><br />
<br />
<b>Warning</b>:  mysqli::set_charset(): invalid object or resource mysqli
 in <b>/var/www/html/reportCMS/php/classes/Database.class.php</b> on line <b>141</b><br />
<br />
<b>Warning</b>:  mysqli::prepare(): invalid object or resource mysqli
 in <b>/var/www/html/reportCMS/php/classes/Database.class.php</b> on line <b>829</b><br />
<br />
<b>Fatal error</b>:  Problem preparing query (SELECT id,username,password,type from user WHERE BINARY
 username=? AND active=1 ) Access denied for user 'user'@'localhost' (using password: YES) in <b
>/var/www/html/reportCMS/php/classes/Database.class.php</b> on line <b>830</b><br />

Database.class.php 第 137 行是:

$this->_mysqli = mysqli_init();
$this->_mysqli->real_connect( $this->host, $this->username, $this->password, $this->db, $this->port );
$this->_mysqli->set_charset ('utf8');

在这两种情况下与数据库的连接,都在带有 mysql 的 ubuntu 机器上。

你能指导我,如何找到错误?如果您需要更多信息,请告诉我。

编辑: 唯一的区别是权限的配置文件,在 ubuntu 上是 localhost。而在windows机器上是ubuntu的IP。但是我已经在 mysql 上授予了 localhost 和 % 的权限。

EDIT2:(针对@anant kumar singh 的建议)

Warning: mysqli::real_connect(): (HY000/1045): Access denied for user 'user'@'myip' (using password: NO) in C:\wamp\www\reportCMS\php\classes\Database .class.php on line 138
Warning: mysqli::set_charset(): invalid object or resource mysqli in C:\wamp\www\reportCMS\php\classes\Database.class.php on line 142
Warning: mysqli::prepare(): invalid object or resource mysqli in C:\wamp\www\reportCMS\php\classes\Database.class.php on line 830
Fatal error: Problem preparing query (SELECT id,username,password ,type from user WHERE BINARY username=? AND active=1 ) Access denied for user 'user'@'myip (using password: NO) in C:\wamp\www\reportCMS\php\classes\Database.class.php on line 831

最佳答案

终于解决了。我的错误是配置文件(用户名、密码、数据库)是在 Windows 上创建的。由于在文件中插入了一些空格,我使用 Netbeans 从 Ubuntu 中删除了它并且它起作用了。

关于php - 与数据库连接时出现奇怪的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31243976/

相关文章:

javascript - 如何在没有 cgi 的情况下从 python 到 JavaScript 获取 float

php - MySQL 结果到 PHP 数组

mysql - Joomla 托管问题

mysql - 如何在参数化查询中转义单引号

java - 将 SQLite 安装到 Eclipse 中以与 Java 一起使用

c++ - 用于 SOCI 数据库访问库生产的 sqlite3 后端准备好了吗?

php - Symfony 2 嵌入表单 ArrayCollection 错误

php - 删除 Wordpress 正文类

mysql - sql中的求和语句

php - 从表单接收数据时自动增加MySQL中的主键