温馨提示×

ubuntu php怎样连接数据库

小樊
37
2026-09-10 08:49:16
栏目: 编程语言

在 Ubuntu 上用 PHP 连接数据库,通常分为 MySQL / MariaDB其他数据库 两种情况。下面以最常见的 PHP + MySQL/MariaDB 为例,一步步说明。


一、安装必要环境(Ubuntu)

1. 安装 PHP 和数据库扩展

sudo apt update
sudo apt install php php-mysql mysql-server -y

如果你使用的是 PHP 8+,默认已包含 mysqlipdo_mysql

2. 重启 Web 服务

# Apache
sudo systemctl restart apache2

# Nginx + PHP-FPM
sudo systemctl restart php8.1-fpm
sudo systemctl restart nginx

二、创建数据库和用户(MySQL 示例)

sudo mysql -u root
CREATE DATABASE testdb;
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

三、PHP 连接数据库的两种方式

方式一:mysqli(面向对象)

<?php
$host = "localhost";
$user = "testuser";
$pass = "password";
$db   = "testdb";

$conn = new mysqli($host, $user, $pass, $db);

if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}
echo "数据库连接成功";
?>

方式二:PDO(推荐,更安全)

<?php
$host = "localhost";
$db   = "testdb";
$user = "testuser";
$pass = "password";

try {
    $pdo = new PDO(
        "mysql:host=$host;dbname=$db;charset=utf8mb4",
        $user,
        $pass
    );
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "数据库连接成功";
} catch (PDOException $e) {
    echo "连接失败: " . $e->getMessage();
}
?>

四、测试 PHP 文件

把文件放到 Web 目录:

sudo nano /var/www/html/db_test.php

浏览器访问:

http://localhost/db_test.php

五、常见问题

1. 报错 Class 'mysqli' not found

sudo apt install php-mysql
sudo systemctl restart apache2

2. 连接被拒绝

  • 确认 MySQL 正在运行
sudo systemctl status mysql
  • 确认用户权限和 host(localhost 不等于 127.0.0.1

3. 使用远程数据库

$host = "192.168.1.100";

并确保 MySQL 允许远程连接。


如果你用的是 PostgreSQL / SQLite / SQL Server,或者想用 Laravel / ThinkPHP,可以告诉我,我可以给你对应示例。

0