温馨提示×

centos mariadb配置步骤是什么

小樊
36
2026-01-02 02:25:23
栏目: 云计算

CentOS 上 MariaDB 配置步骤

一 准备与安装

  • 创建 MariaDB 官方 YUM 源(示例为 10.3,可按需调整版本与镜像):
    • 新建文件:/etc/yum.repos.d/MariaDB.repo
    • 写入内容:
      [mariadb]
      name = MariaDB
      baseurl = https://mirrors.aliyun.com/mariadb/yum/10.3/centos7-amd64
      gpgkey = https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
      gpgcheck = 1
      
  • 安装服务端和客户端:
    • 执行:yum install -y MariaDB-server MariaDB-client
  • 启动并设置开机自启:
    • 执行:systemctl start mariadb && systemctl enable mariadb
  • 说明:MariaDB 的配置文件通常包含 /etc/my.cnf,并通过 !includedir /etc/my.cnf.d 引入子配置,推荐将自定义配置写入 /etc/my.cnf.d/ 下的文件(如 server.cnf、client.cnf)。

二 安全初始化与基础配置

  • 运行安全初始化向导,设置 root 密码、删除匿名用户、按需禁止 root 远程登录、删除测试库并刷新权限:
    • 执行:mysql_secure_installation
  • 登录验证:
    • 执行:mysql -u root -p
  • 建议:生产环境避免使用 root 远程登录,后续通过专用账户并限制来源 IP 访问。

三 远程访问与防火墙

  • 授权远程账户(示例创建可远程的管理员账户 admin,生产环境请使用强密码并限制网段):
    • 登录数据库后执行:
      CREATE USER 'admin'@'%' IDENTIFIED BY 'StrongPass!';
      GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;
      FLUSH PRIVILEGES;
      
    • 如需仅允许某网段(如 192.168.1.%)访问,将 ‘%’ 替换为对应网段。
  • 防火墙放行 3306/TCP(推荐按需开放而非直接关闭防火墙):
    • 执行:
      firewall-cmd --zone=public --add-port=3306/tcp --permanent
      firewall-cmd --reload
      
  • 云服务器场景:除系统防火墙外,还需在云平台安全组放行 3306/TCP 入方向规则。

四 字符集与常见参数优化

  • 字符集统一为 utf8(避免中文乱码):
    • 编辑:/etc/my.cnf.d/server.cnf,在 [mysqld] 下添加:
      character-set-server = utf8
      collation-server = utf8_general_ci
      init_connect = 'SET NAMES utf8'
      skip-character-set-client-handshake
      
    • 编辑:/etc/my.cnf.d/client.cnf,在 [client] 下添加:
      default-character-set = utf8
      
    • 编辑:/etc/my.cnf.d/mysql-clients.cnf,在 [mysql] 下添加:
      default-character-set = utf8
      
    • 重启生效:systemctl restart mariadb
    • 验证:登录后执行
      SHOW VARIABLES LIKE 'character%';
      SHOW VARIABLES LIKE 'collation%';
      
  • 常用性能与安全参数(写入 [mysqld]):
    innodb_file_per_table = ON
    skip_name_resolve = ON
    max_connections = 4096
    innodb_buffer_pool_size = 8G   # 依据内存调整
    
  • 表名大小写敏感(如需不区分大小写,写入 [mysqld]):
    lower_case_table_names = 1
    
    • 注意:修改该参数通常需要初始化数据目录后首次启动前设置,已有库表需重建后生效。

0