MySQL的主机名是什么?

时间:2014-07-12 16:31:38

标签: php mysql web-applications

这听起来像个愚蠢的问题,但我开始使用PHP和MySQL,并在第一步失败,尝试连接数据库:

<html>
<head>

</head>
<body>
    <?php
        $con = mysqli_connect("localhost", "root", "root", "ASOIAF.odb");

        if (mysqli_connect_errno()) {
            echo "Failed to connect to database";
        } else {
            echo "Connected to database";
        }

        mysqli_close($con);
    ?>
</body>
</html>

我不明白第一个主机参数。一个yahoo help页面说主机应该是“mysql”,但是当我使用它时它也无法连接。数据库ASOIAF在LibreOffice Base上采用OpenDocument数据库格式(odb)。我正在使用Uniserver来运行PHP和MySQL;两者目前都在运行。 Web应用程序存储在Uniserver的www文件夹中,并通过localhost在Google Chrome上运行。

我应该在connect声明的主机部分插入什么内容?或者我在PHP代码中做了一个更基本的语法错误,阻止了连接?

2 个答案:

答案 0 :(得分:0)

  

MySQL的主机名是什么?

我们不知道你所谓的运行MySQL的计算机是什么。

  

雅虎帮助页面说主机应该是“mysql”

这是Yahoo Web Hosting特有的。这听起来并不像您正在使用他们的服务,所以这是不适用的。

  

我正在使用Uniserver来运行PHP和MySQL

这表明运行运行PHP的Web服务器的计算机和运行MySQL服务器的计算机是同一台计算机。这使得localhost合适。

localhost是专用网络上只有它连接的计算机的标准名称。因为MySQL具有特殊含义,并且通过套接字而不是TCP / IP(更高效)导致连接。

  

我应该在connect语句的主机部分插入什么内容?

localhost如果上述内容正确无误。

  

或者我在PHP代码中发出了一个更基本的语法错误,阻止了连接?

我看不到任何语法错误。我怀疑问题可能归结为您的数据库配置。你有没有告诉MySQL服务器ASOIAF.odb?这就是MySQL内部实际调用的数据库(而不仅仅是存储LibreOffice配置以连接到该数据库的文件)。

你最大的错误就是没有使用mysqli_error来找出PHP报告的问题。

    if (mysqli_connect_errno()) {
        echo "Failed to connect to database";
        echo mysqli_error();

答案 1 :(得分:-1)

使用

mysqli_connect("localhost", "root");

希望它能运作