无法使用带有apache2虚拟主机的wordpress实例连接到Mariadb

问题描述 投票:0回答:1

我正处于建立此连接的最糟糕时期。目前,我可以连接到我的 ipv4 并看到一条消息“建立数据库连接时出错。我还创建了一个测试 php 文件

这是测试 php 文件的设置:

<?php
$servername = "localhost";
$username = "cr-user";
$password = "password";
$db = "tr-wordpress";
// Create connection
$conn = new mysqli($servername, $username, $password, $db);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
echo "Connected successfully";
?>                                            

对于我的 wp 管理员:

define( 'DB_NAME', 'tr_wordpress' );
define( 'DB_USER', 'cr_user' );
define( 'DB_PASSWORD', 'password' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8' );

我收到一条消息说连接失败。我的数据库有“cr-user”用户,该用户被授予本地主机下数据库的权限。我的做法是这样的:

CREATE USER cr_user@localhost IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON tr-wordpress.* TO 'cr_user'@'localhost';    
FLUSH PRIVILEGES;

然后我读了一篇关于较新的 Mariadb 版本在配置文件中绑定到“127.0.0.1”行的文章。我首先尝试将其注释掉,看看它是否解决了任何问题。没用。然后我取消注释并将所有连接设置为“127.0.0.1”,包括测试 phpfile、wp-admin 和 mariadbuser 主机地址。

$servername = "127.0.0.1";
define( 'DB_HOST', '127.0.0.1' );

对于我的 Mariadb,我运行了这个命令:

UPDATE mysql.user SET Host='127.0.0.1' WHERE Host='localhost' AND User='cr_user';
UPDATE mysql.db SET Host='127.0.0.1' WHERE Host='localhost' AND User='cr_user';
FLUSH PRIVILEGES;

没用。我收到了同样的信息。然后我尝试通过将之前的区域从“127.0.0.1”更改为IP来尝试通过外部IP进行连接。我得到的改变是它然后说连接被拒绝。

需要注意的一件事是,如果我跑步:

mysql -u cr_user -p'password'

在 ubuntu 的命令行终端中,我可以使用用户名和密码很好地连接。只有在使用 PHP 时才会出现某些问题。

非常感谢这里的一些帮助,因为我没有想法。谢谢!!!

php wordpress mariadb apache2 virtualhost
1个回答
0
投票

您是否尝试过在主机名后添加端口?由前本地主机:3306?我的意思是在 mysqli_connect 语句或变量中......这为我解决了问题

$test_connect = mysqli_connect("localhost:3306".....

© www.soinside.com 2019 - 2024. All rights reserved.