ubuntu

Ubuntu PHP数据库如何连接

小樊
43
2025-07-13 15:25:16
栏目: 编程语言

在Ubuntu上使用PHP连接数据库,通常是指使用PHP连接MySQL或MariaDB数据库。以下是连接数据库的基本步骤:

  1. 安装数据库服务器(MySQL或MariaDB): 如果你还没有安装数据库服务器,可以使用以下命令安装MariaDB(Ubuntu的默认数据库服务器):

    sudo apt update
    sudo apt install mariadb-server
    

    安装完成后,启动数据库服务并设置开机自启:

    sudo systemctl start mariadb
    sudo systemctl enable mariadb
    

    为了安全起见,运行数据库的安全设置脚本:

    sudo mysql_secure_installation
    
  2. 创建数据库和用户: 使用mysql命令行工具登录到数据库服务器:

    mysql -u root -p
    

    输入密码后,创建一个新的数据库和一个用户,并授予该用户对新数据库的权限:

    CREATE DATABASE mydatabase;
    CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
    GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost';
    FLUSH PRIVILEGES;
    EXIT;
    

    记住mydatabase(数据库名)、myuser(用户名)和mypassword(密码),因为稍后在PHP代码中会用到。

  3. 安装PHP数据库扩展: 根据你使用的数据库类型,安装相应的PHP扩展。对于MariaDB或MySQL,安装php-mysql扩展:

    sudo apt install php-mysql
    

    安装完成后,重启Web服务器以使扩展生效:

    sudo systemctl restart apache2 # 如果你使用的是Apache
    # 或者
    sudo systemctl restart nginx # 如果你使用的是Nginx
    
  4. 编写PHP代码连接数据库: 创建一个PHP文件,例如connect.php,并使用mysqli或PDO扩展来连接数据库:

    使用mysqli扩展的示例代码:

    <?php
    $servername = "localhost";
    $username = "myuser";
    $password = "mypassword";
    $dbname = "mydatabase";
    
    // 创建连接
    $conn = new mysqli($servername, $username, $password, $dbname);
    
    // 检查连接
    if ($conn->connect_error) {
        die("连接失败: " . $conn->connect_error);
    }
    echo "连接成功";
    ?>
    

    使用PDO扩展的示例代码:

    <?php
    $servername = "localhost";
    $username = "myuser";
    $password = "mypassword";
    $dbname = "mydatabase";
    
    try {
        $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
        // 设置 PDO 错误模式为异常
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        echo "连接成功";
    } catch(PDOException $e) {
        echo "连接失败: " . $e->getMessage();
    }
    ?>
    

    将上述代码保存到connect.php文件中,并在Web服务器上运行它。如果一切设置正确,你应该会看到“连接成功”的消息。

请确保在实际部署时不要将数据库的用户名、密码和数据库名硬编码在脚本中,而是使用配置文件或环境变量来管理这些敏感信息。

0
看了该问题的人还看了