首页主机资讯如何在Linux上使用MariaDB进行开发

如何在Linux上使用MariaDB进行开发

时间2025-11-25 02:19:04发布访客分类主机资讯浏览418
导读:在 Linux 上使用 MariaDB 进行开发 一 安装与启动 基于 Debian/Ubuntu 安装:sudo apt update && sudo apt install mariadb-server mariad...

在 Linux 上使用 MariaDB 进行开发

一 安装与启动

  • 基于 Debian/Ubuntu
    • 安装:sudo apt update & & sudo apt install mariadb-server mariadb-client-core
    • 启动与自启:sudo systemctl start mariadb & & sudo systemctl enable mariadb
    • 验证:sudo systemctl status mariadbmysql -V
  • 基于 RHEL/CentOS
    • 安装:sudo yum install mariadb-server mariadb
    • 启动与自启:sudo systemctl start mariadb & & sudo systemctl enable mariadb
    • 验证:sudo systemctl status mariadbmysql -V
  • 安全初始化(首次安装强烈建议)
    • 执行:sudo mysql_secure_installation(设置 root 强密码、删除匿名用户、禁止远程 root 登录、移除测试库等)
  • 连接测试
    • 本地:mysql -u root -p
    • 远程:mysql -u < user> -h < host> -P 3306 -p
  • 备注
    • CentOS/RHEL 7+ 中,系统仓库的 MySQL 包名已替换为 mariadb-server,用法与 MySQL 兼容。

二 配置开发环境

  • 字符集与排序规则
    • 建议统一使用 utf8mb4/utf8mb4_general_ci,在客户端与服务端配置:
      • 客户端(如 my.cnf 的 [mysql] 段):default-character-set=utf8mb4
      • 服务端([mysqld] 段):character-set-server=utf8mb4collation-server=utf8mb4_general_ci
  • 网络与端口
    • 默认端口 3306;如需仅本地访问,可绑定 127.0.0.1;如需远程开发,开放防火墙并限制来源网段。
  • 容器化开发(Docker,便于隔离与复现)
    • 示例 docker-compose.yaml(挂载自定义配置、数据卷与端口映射):
      services:
        db:
          image: mariadb:latest
          restart: always
          container_name: mariadb
          environment:
            MYSQL_ROOT_PASSWORD: rootpass
            MYSQL_DATABASE: devdb
            MYSQL_USER: dev
            MYSQL_PASSWORD: devpass
          volumes:
            - ./my.cnf:/etc/mysql/conf.d/my.cnf:ro
            - ./data:/var/lib/mysql
          ports:
            - "3306:3306"
      
    • 启动:docker compose up -d;连接:mysql -h 127.0.0.1 -P 3306 -u dev -p

三 数据库与用户管理

  • 登录:mysql -u root -p
  • 常用 SQL
    • 版本:SELECT VERSION();
    • 建库:CREATE DATABASE IF NOT EXISTS devdb DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
    • 建用户:CREATE USER 'dev'@'%' IDENTIFIED BY 'StrongPass!';
    • 授权:GRANT ALL PRIVILEGES ON devdb.* TO 'dev'@'%';
    • 刷新:FLUSH PRIVILEGES;
    • 改密:ALTER USER 'dev'@'%' IDENTIFIED BY 'NewPass!';
    • 撤销:REVOKE ALL PRIVILEGES ON devdb.* FROM 'dev'@'%'; DROP USER 'dev'@'%';
  • 最小权限原则
    • 应用连接建议使用仅对目标库具备 SELECT/INSERT/UPDATE/DELETE 权限的专用账号,避免使用 root。

四 备份恢复与日常维护

  • 逻辑备份与恢复
    • 备份:mysqldump -u root -p --single-transaction --routines --triggers --default-character-set=utf8mb4 devdb > devdb.sql
    • 恢复:mysql -u root -p devdb < devdb.sql
  • 定时备份(示例)
    • 创建脚本 backup.sh:mysqldump -u root -p devdb > /backups/devdb_$(date +%F).sql
    • 赋权:chmod +x backup.sh
    • 定时任务(每天 02:00):0 2 * * * /backups/backup.sh
  • 性能与诊断
    • 查看连接与慢查询:SHOW PROCESSLIST; EXPLAIN SELECT ...;
    • 建议开启慢查询日志,定位全表扫描与索引缺失。

五 应用连接与开发实践

  • 连接字符串示例
    • JDBC:jdbc:mariadb://localhost:3306/devdb?useSSL=false& characterEncoding=utf8mb4
    • Python(PyMySQL):pymysql.connect(host='127.0.0.1', port=3306, user='dev', password='devpass', database='devdb', charset='utf8mb4')
    • Node.js(mysql2):mysql.createConnection({ host: '127.0.0.1', user: 'dev', password: 'devpass', database: 'devdb', charset: 'utf8mb4' } )
  • 开发建议
    • 统一使用 utf8mb4 避免表情符号乱码;为高频查询建立合适索引;使用连接池与合理的事务隔离级别;SQL 语句以分号结尾并在版本控制中管理迁移脚本(如 Flyway/Liquibase)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何在Linux上使用MariaDB进行开发
本文地址: https://pptw.com/jishu/755170.html
K8S在Linux上如何部署应用 如何配置Linux MariaDB的内存使用

游客 回复需填写必要信息