我有2个具有以下配置的Linux VM:
VM 1:
OS: Redhat Enterprise Linux 5.4
Apache: 2.2.23
PHP: 5.5.3
MySQL: 5.5.28
PHP config: './configure' '--with-apxs2=/usr/local/apache2/bin/apxs' '--prefix=/usr/local/apache2/php' '--with-config-file-path=/usr/local/apache2/php' '--disable-cgi' '--with-zlib' '--with-gettext' '--with-gdbm' '--with-sqlite3' '--enable-sqlite-utf8' '--with-mysql=/usr/local/mysql/' '--with-pdo-mysql=mysqlnd' '--enable-mbstring' '--enable-calendar' '--with-curl=/usr/lib' '--with-gd' '--with-jpeg-dir=/usr/lib/libjpeg.so' '--with-png-dir=/usr/lib/libpng.so' '--enable-soap' '--enable-bcmath'
VM 2:
OS: Redhat Enterprise Linux 6.4
Apache: 2.4.6
PHP: 5.3.27
MySQL: 5.6.13
PHP config: './configure' '--with-apxs2=/usr/local/apache2/bin/apxs' '--prefix=/usr/local/apache2/php' '--with-config-file-path=/usr/local/apache2/php' '--disable-cgi' '--with-zlib' '--with-gettext' '--with-gdbm' '--with-sqlite3' '--enable-sqlite-utf8' '--with-mysql=mysqlnd' '--with-pdo-mysql=mysqlnd' '--enable-mbstring' '--enable-calendar' '--with-curl=/usr/lib' '--with-gd' '--with-jpeg-dir=/usr/lib/libjpeg.so' '--with-png-dir=/usr/lib/libpng.so' '--enable-soap' '--enable-bcmath' '--with-mysqli=mysqlnd' '--with-pdo-sqlite' '--with-pear' '--enable-ftp' '--with-openssl'
我有一个php类,它使用PDO使用以下代码连接到MySQL数据库:
try {
$this->maindb = new PDO(PDO_MYSQL_HOST_DBNAME, PDO_MYSQL_USER, PDO_MYSQL_PASSWORD, array(PDO::ATTR_PERSISTENT => true));
$this->maindb->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die('Error connecting database: ' . $e->getMessage());
}
这部分工作正常,数据按预期插入数据库。
奇怪的是,在我的类结束时,当我创建另一个类的对象并将$this->maindb
对象传递给其中一个方法以写入更多数据时,它失败并出现'SQLSTATE[28000]: Invalid authorization specification: 1045 Access denied for user 'team'@'localhost' (using password: YES)'
错误。
我的问题是,相同的代码在VM1上运行正常,并且如上所述在VM2上失败。我尝试过这些选项:
root
用户权限。我不知道可能导致此问题的原因。请帮我解决这个问题。
注意:我更喜欢任何不涉及降级软件包的解决方案。