Linux MariaDB数据库应用与管理

引导

  • 了解MariaDB与MySQL的区别与联系
  • 掌握MariaDB的安装与启停控制
  • 掌握MariaDB用户的创建与权限管理
  • 掌握使用phpMyAdmin管理MariaDB
  • 熟悉phpMyAdmin的下载、安装和配置
  • 熟悉phpMyAdmin配置文件的主要项

MariaDB由MySQL创始人Michael Widenius主导开发,名称源于其女儿Maria。作为MySQL的分支产品,MariaDB具有以下特点:

  • 完全兼容MySQL:API和命令行与MySQL完全兼容,可无缝替代
  • 开源免费:采用GPL授权许可
  • 性能优化:扩展功能和存储引擎优于MySQL
  • 行业认可:被Red Hat、Wikipedia、Google等巨头采用
  • 技术自主:规避Oracle对MySQL的技术垄断风险

2013年起,RHEL 7及后续版本默认使用MariaDB替代MySQL。本项目将系统介绍MariaDB的安装配置、用户管理及可视化工具phpMyAdmin的应用。


实施

1:安装Linux下的MariaDB数据库

1.1:MariaDB与MySQL的关系

特性MariaDBMySQL
开发背景MySQL社区分支Oracle公司维护
兼容性完全兼容MySQL(API/命令行)原生版本
性能优化改进存储引擎(如Aria)、并行复制常规优化
版本对应MariaDB 5.1.47 → MySQL 5.1.47独立版本号体系
迁移难度数据和表定义文件二进制兼容需数据导出导入

迁移优势

  • 客户端连接器(PHP/Perl/Python等)无需修改
  • 配置文件路径和端口保持一致
  • 共享客户端库二进制兼容

1.2:安装与配置MariaDB

  1. 服务端安装

    # 使用yum安装(RHEL/CentOS)
    yum install mariadb-server
    
    # 验证安装
    mysqladmin --version
    # 输出:mysqladmin Ver 9.0 Distrib 5.5.35-MariaDB, for Linux on x86_64
    
  2. 关键文件路径

    文件类型路径
    配置文件/etc/my.cnf.d/
    数据库文件/var/lib/mysql/
    日志文件/var/log/mariadb/
    系统服务文件/usr/lib/systemd/system/mariadb.service
  3. 客户端安装

    yum install mariadb
    # 包含mysql命令行工具
    

2:MariaDB数据库操作与管理

2.1:服务管控与基础操作

  1. 服务启停

    systemctl start mariadb    # 启动服务
    systemctl enable mariadb   # 设置开机自启
    systemctl status mariadb   # 查看状态
    
  2. 安全初始化

    mysql_secure_installation
    

    初始化步骤

    1. 设置root密码
    2. 删除匿名账户
    3. 禁止root远程登录
    4. 删除测试数据库
    5. 刷新权限表
  3. 登录与退出

    # 登录(本地无密码)
    mysql -u root 
    
    # 登录(带密码)
    mysql -u root -p
    
    # 退出数据库
    MariaDB [(none)]> exit;
    

2.2:数据库核心操作

  1. 数据库操作

    -- 查看所有数据库
    SHOW DATABASES;
    
    -- 创建数据库
    CREATE DATABASE school;
    
    -- 删除数据库
    DROP DATABASE test;
    
  2. 数据表操作

    -- 进入数据库
    USE school;
    
    -- 创建学生表
    CREATE TABLE students (
      id INT AUTO_INCREMENT PRIMARY KEY,
      name VARCHAR(50) NOT NULL,
      age INT,
      class VARCHAR(20)
    );
    
    -- 查看表结构
    DESCRIBE students;
    
  3. 数据增删改查

    -- 插入数据
    INSERT INTO students (name, age, class) 
    VALUES ('张三', 18, '计算机一班');
    
    -- 查询数据
    SELECT * FROM students WHERE class='计算机一班';
    
    -- 更新数据
    UPDATE students SET age=19 WHERE name='张三';
    
    -- 删除数据
    DELETE FROM students WHERE id=3;
    
  4. 备份与恢复

    # 备份数据库
    mysqldump -u root -p school > school_backup.sql
    
    # 恢复数据库
    mysql -u root -p school < school_backup.sql
    

2.3:用户与权限管理

  1. 创建用户

    -- 创建本地用户teacher
    CREATE USER 'teacher'@'localhost' IDENTIFIED BY 'Teach123!';
    
    -- 授予school数据库所有权限
    GRANT ALL PRIVILEGES ON school.* TO 'teacher'@'localhost';
    
  2. 权限控制

    权限类型命令示例说明
    全局权限GRANT SELECT ON *.* TO user所有数据库查询权限
    数据库权限GRANT INSERT ON db.* TO user指定数据库插入权限
    表级权限GRANT DELETE ON db.table TO user特定表删除权限
    列级权限GRANT UPDATE (name) ON ...仅更新特定列
  3. 撤销权限

    REVOKE DELETE ON school.* FROM 'teacher'@'localhost';
    
  4. 删除用户

    DROP USER 'olduser'@'localhost';
    
  5. 权限表说明

    表名功能描述
    user全局权限和用户账户信息
    db数据库级权限
    tables_priv表级权限
    columns_priv列级权限
    procs_priv存储过程和函数权限

3:使用phpMyAdmin管理MariaDB

3.1:phpMyAdmin功能概述

  • 数据库管理:创建/删除数据库
  • 表操作:结构修改、索引管理
  • 数据操作:CRUD(增删改查)、导入/导出
  • 用户管理:账户创建与权限分配
  • SQL执行:支持复杂查询和批处理
  • 可视化分析:关系视图、查询统计

3.2:安装配置phpMyAdmin

  1. 安装流程

    # 下载最新版(示例版本4.4.15)
    wget https://files.phpmyadmin.net/phpMyAdmin/4.4.15.10/phpMyAdmin-4.4.15.10-all-languages.zip
    
    # 解压到Web目录
    unzip phpMyAdmin-4.4.15.10-all-languages.zip
    mv phpMyAdmin-4.4.15.10-all-languages /var/www/html/phpmyadmin
    
    # 安装依赖
    yum install php-mbstring
    
  2. 解决常见错误

    # 错误:The mbstring extension is missing
    vim /etc/php.ini
    

    添加配置

    [mbstring]
    mbstring.language = Chinese
    mbstring.internal_encoding = UTF-8
    mbstring.http_output = UTF-8
    
  3. 配置文件优化

    // /var/www/html/phpmyadmin/config.inc.php
    $cfg['blowfish_secret'] = 'KJHG*&^%$#@!adf123'; // 32位加密密钥
    $cfg['Servers'][$i]['auth_type'] = 'cookie';    // 认证方式
    $cfg['Servers'][$i]['host'] = 'localhost';      // 数据库主机
    
  4. 启用高级功能

    -- 导入配置存储SQL
    mysql -u root -p < /var/www/html/phpmyadmin/sql/create_tables.sql
    

    配置文件激活

    $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
    $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
    // 其他表配置参照示例文件启用
    

3.3:phpMyAdmin操作示例

  1. 登录界面
    访问 http://服务器IP/phpmyadmin,输入数据库账号密码

  2. 数据库管理

    • 创建新数据库:输入名称选择排序规则
    • 导入/导出:支持SQL/CSV/JSON等格式
  3. SQL查询

    • 多标签SQL编辑器
    • 语法高亮和自动补全
    • 查询结果可视化展示
  4. 用户权限管理

    • 图形化权限分配界面
    • 实时显示权限作用范围
    • 支持账户有效期设置

最佳实践:生产环境务必禁用config认证方式,定期更新phpMyAdmin版本防范安全风险。