我正在运行wordpress网站以及同一网络服务器上的mediawiki。 mediawiki网站效果很好! wordpress网站,嗯。没那么多。我一直收到常见的数据库连接错误:
Error establishing a database connection
据我所知,mediawiki网站和wordpress网站之间的设置几乎相同。
这是媒体维基配置,因为那个人正在工作:
## Database settings
$wgLBFactoryConf['class'] = 'LBFactorySimple';
$wgDBtype = "mysql";
$wgDBservers = '';
$wgDBserver = "db.example.com";
$wgDBssl = true;
$wgDBname = "jfwiki";
$wgDBuser = "admin_ssl";
$wgDBpassword = "secret";
以下是wordpress数据库连接设置的样子,因为它们不是:
/** MySQL database username */
define('DB_NAME', 'jokefire');
define('DB_USER', 'admin_ssl');
/** MySQL database password */
define('DB_PASSWORD', 'secret');
/** MySQL hostname */
define('DB_HOST', 'db.example.com');
/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');
/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');
/** Contact the database over a secure connection */
define('DB_SSL', true);
我意识到他们并不完全一样。但我认为你可以在mediawiki设置和wordpress设置之间轻松关联。它们看起来很相似,认为wordpress应该正常工作。正确?
唯一真正的其他区别是每个网站使用的数据库名称,我认为这是合理的。
但medawiki工作正常的事实告诉我,为两个站点设置的用户和密码都可以访问数据库。
只是为了笑,我使用wordpress配置中的帐户设置来演示我可以在命令行上连接到数据库。同样,它与我在wik网站上的帐户信息相同:
#mysql -uadmin_ssl -p -h db.example.com -D jokefire -e "show tables" | head -5
Enter password:
Tables_in_jokefire
wp_bp_activity
wp_bp_activity_meta
wp_bp_chat_channel_users
wp_bp_chat_channels
另外,我创建了一个基本的php脚本,以查看它是否可以连接到数据库
<?php
$link = mysql_connect('db.example.com', 'admin_ssl', 'secret');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>
令我惊讶的是它无法连接!
php testconnect.php
Could not connect: Access denied for user 'admin_ssl'@'ec2-54-86-143-49.compute-1.amazonaws.com' (using password: YES)
为什么我不能感到惊讶?因为再次1)维基可以连接数据库没问题。 2)我可以使用相同的凭据在命令行上连接到db。
我的API MySQL客户端版本是:
Client API version mysqlnd 5.0.10 - 20111026 - $Id: c85105d7c6f7d70d609bb4c000257868a40840ab $
希望这有助于缩小问题范围。谢谢!