linux

MariaDB在Linux上的使用技巧

小樊
39
2025-08-15 13:57:27
栏目: 云计算

一、基础操作技巧

  1. 安装与启动

    • 安装
      • Debian/Ubuntu: sudo apt-get install mariadb-server
      • CentOS/RHEL: sudo yum install mariadb-server
    • 启动服务
      sudo systemctl start mariadb
      sudo systemctl enable mariadb
  2. 登录与基础命令

    • 登录数据库mysql -u root -p
    • 常用SQL
      • 创建数据库:CREATE DATABASE db_name;
      • 创建表:CREATE TABLE table_name (id INT, name VARCHAR(50));
      • 插入数据:INSERT INTO table_name VALUES (1, 'Alice');
  3. 用户与权限管理

    • 创建用户:CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
    • 授权:GRANT SELECT, INSERT ON db_name.* TO 'user'@'localhost';
    • 撤销权限:REVOKE SELECT ON db_name.* FROM 'user'@'localhost';

二、性能优化技巧

  1. 配置参数调优

    • 内存优化:调整 innodb_buffer_pool_size(建议设置为物理内存的50%-70%)。
    • 连接数设置:修改 max_connections 避免资源耗尽。
    • 日志优化:开启慢查询日志 slow_query_log=1,分析低效SQL。
  2. SQL优化

    • 避免 SELECT *,只查询必要字段。
    • 为高频查询字段添加索引,使用 EXPLAIN 分析查询计划。
    • JOIN 替代子查询,减少数据库开销。
  3. 系统层面优化

    • 文件系统:使用SSD存储数据库文件,提升I/O性能。
    • 内核参数:调整 vm.swappiness=1 减少交换分区使用。
    • 资源限制:通过 ulimit 增加文件描述符限制(如 nofile=65535)。

三、安全配置技巧

  1. 基础安全加固

    • 运行 mysql_secure_installation 脚本,设置root密码、删除匿名用户、禁止远程root登录。
    • 修改配置文件 /etc/mysql/mariadb.conf.d/50-server.cnf,将 bind-address 设为 0.0.0.0 以支持远程访问(需配合防火墙)。
  2. 访问控制与加密

    • 通过防火墙(如 ufwfirewalld)限制3306端口仅允许可信IP访问。
    • 启用SSL加密通信,配置证书路径。
  3. 审计与监控

    • 开启审计日志记录所有数据库操作。
    • 定期查看慢查询日志,优化低效SQL。

四、高级管理技巧

  1. 备份与恢复

    • 使用 mysqldump 备份数据库:
      mysqldump -u root -p db_name > backup.sql
      恢复:mysql -u root -p db_name < backup.sql
    • 定期执行全量备份与增量备份,存储至异地服务器。
  2. 高可用性配置

    • 主从复制:通过配置 my.cnf 实现主库与从库数据同步。
    • 集群部署:使用Galera Cluster实现多节点高可用。
  3. 自动化运维

    • 编写Shell脚本定时执行备份、优化表等任务。
    • 使用Ansible/Puppet等工具批量管理多台MariaDB服务器。

五、常见问题解决

参考来源:[1,2,3,4,5,6,7,8,9,10]

0
看了该问题的人还看了