温馨提示×

Ubuntu LAMP中如何管理数据库

小樊
60
2025-09-18 13:44:47
栏目: 智能运维

Ubuntu LAMP环境中数据库管理指南

一、数据库基础管理(命令行方式)

1. 安装与启动MySQL服务

LAMP中的数据库通常使用MySQL(或MariaDB)。首先更新系统包并安装MySQL服务器:

sudo apt update && sudo apt upgrade -y
sudo apt install mysql-server -y

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

sudo systemctl start mysql
sudo systemctl enable mysql

2. 安全配置

运行mysql_secure_installation脚本强化数据库安全,主要步骤包括:

  • 设置root用户密码(若未设置);
  • 删除匿名用户;
  • 禁止root远程登录;
  • 删除测试数据库;
  • 重新加载权限表。
sudo mysql_secure_installation

3. 登录MySQL

使用root用户登录MySQL命令行客户端:

sudo mysql -u root -p

输入密码后进入MySQL交互界面。

4. 数据库与表操作

  • 创建数据库:指定数据库名称(如mydb):
    CREATE DATABASE mydb;
    
  • 选择数据库:切换到目标数据库:
    USE mydb;
    
  • 创建表:定义表结构(如users表):
    CREATE TABLE users (
        id INT AUTO_INCREMENT PRIMARY KEY,
        username VARCHAR(50) NOT NULL,
        email VARCHAR(100) NOT NULL,
        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    );
    
  • 增删改查(CRUD)
    • 插入数据:向users表添加记录:
      INSERT INTO users (username, email) VALUES ('john', 'john@example.com');
      
    • 查询数据:获取所有用户信息:
      SELECT * FROM users;
      
    • 更新数据:修改指定ID用户的邮箱:
      UPDATE users SET email = 'john.doe@example.com' WHERE id = 1;
      
    • 删除数据:删除指定ID的用户:
      DELETE FROM users WHERE id = 1;
      

5. 用户与权限管理

  • 创建用户:创建本地用户(如myuser,密码mypassword):
    CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
    
  • 授权用户:授予用户对mydb数据库的所有权限:
    GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
    FLUSH PRIVILEGES; -- 刷新权限使变更生效
    
  • 撤销权限:移除用户的权限:
    REVOKE ALL PRIVILEGES ON mydb.* FROM 'myuser'@'localhost';
    FLUSH PRIVILEGES;
    

6. 备份与恢复

  • 备份数据库:使用mysqldump导出mydb到SQL文件:
    mysqldump -u myuser -p mydb > mydb_backup.sql
    
  • 恢复数据库:将备份文件导入到mydb
    mysql -u myuser -p mydb < mydb_backup.sql
    

二、图形化管理工具(phpMyAdmin)

phpMyAdmin是基于Web的数据库管理工具,适合不熟悉命令行的用户。

1. 安装phpMyAdmin

通过APT安装phpMyAdmin,并选择Apache作为Web服务器:

sudo apt install phpmyadmin

安装过程中会提示配置数据库(选择“是”),并设置phpMyAdmin的登录密码。

2. 使用phpMyAdmin

  • 访问界面:在浏览器中输入http://your_server_ip/phpmyadmin
  • 登录:使用root用户或已创建的数据库用户登录;
  • 操作功能
    • 数据库管理:创建/删除数据库、表;
    • 数据操作:插入/查询/更新/删除数据;
    • 用户权限:管理用户及权限;
    • 导出/导入:备份/恢复数据库。

三、性能优化与安全策略

1. 性能优化

  • 索引优化:为高频查询字段添加索引(如username字段):
    CREATE INDEX idx_username ON users(username);
    
  • 查询分析:使用EXPLAIN查看查询执行计划,优化慢查询:
    EXPLAIN SELECT * FROM users WHERE username = 'john';
    

2. 安全策略

  • 密码强度:使用强密码(包含大小写字母、数字、特殊字符);
  • 权限控制:遵循最小权限原则,仅授予用户必要的权限;
  • 防止SQL注入:使用预处理语句(PHP示例):
    $stmt = $conn->prepare("INSERT INTO users (username, email) VALUES (?, ?)");
    $stmt->bind_param("ss", $username, $email); // "ss"表示两个字符串参数
    $username = "john";
    $email = "john@example.com";
    $stmt->execute();
    $stmt->close();
    $conn->close();
    
  • 定期更新:保持MySQL、PHP等软件包为最新版本,修复安全漏洞。

四、日常维护

  • 检查表完整性:定期检查表是否有损坏:
    CHECK TABLE users;
    
  • 优化表:整理表碎片,提升查询性能:
    OPTIMIZE TABLE users;
    
  • 清理冗余数据:删除无用数据(如过期日志、测试数据),释放存储空间;
  • 查看状态与日志:监控MySQL服务状态,查看错误日志定位问题:
    sudo systemctl status mysql
    tail -f /var/log/mysql/error.log
    

0