You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu下MariaDB 11.4启动未读取配置文件问题求助

解决建议
  • 检查systemd服务的启动参数
    Ubuntu下MariaDB的systemd服务可能强制指定配置文件路径或直接覆盖datadir。执行以下命令查看服务实际启动命令:

    ps aux | grep mariadbd
    

    如果输出包含--defaults-file=/path/to/other/config,说明服务加载的不是你修改的50-server.cnf;如果直接有--datadir=/var/lib/mysql,则说明启动参数覆盖了配置文件设置。

    也可以查看systemd服务文件内容:

    cat /lib/systemd/system/mariadb.service
    

    或检查自定义服务配置片段:

    ls -l /etc/systemd/system/mariadb.service.d/
    cat /etc/systemd/system/mariadb.service.d/*.conf
    

    若发现服务文件的ExecStart参数指定了--defaults-file或--datadir,修改对应配置后重新加载systemd:

    sudo systemctl daemon-reload
    sudo systemctl restart mariadb
    
  • 验证配置文件组名是否正确
    MariaDB 10.5及以后版本,服务器端配置组为[mariadbd],而非旧版的[mysqld]。打开/etc/mysql/mariadb.conf.d/50-server.cnf,确认修改的datadir在[mariadbd]组内,组名错误会导致服务启动时忽略配置项。

  • 手动指定配置文件启动服务器
    跳过systemd,直接用命令行指定配置文件启动,验证配置是否生效:

    sudo mariadbd --defaults-file=/etc/mysql/mariadb.conf.d/50-server.cnf
    

    若此时出现语法错误提示或datadir生效,说明问题出在systemd服务配置;若仍不生效,检查配置文件权限(确保mariadb用户可读取):

    ls -l /etc/mysql/mariadb.conf.d/50-server.cnf
    

    权限应为-rw-r--r--,属主属组建议为root:root或root:mysql。

  • 检查全局配置文件的优先级
    mariadbd --verbose --help输出的配置文件读取顺序中,/etc/my.cnf排在/etc/mysql/my.cnf之前。若/etc/my.cnf存在且定义了datadir,会覆盖后续配置文件设置,检查该文件:

    cat /etc/my.cnf
    

    若包含datadir=/var/lib/mysql,可删除该行或修改为目标路径。

内容的提问来源于stack exchange,提问作者Mike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 04:42:03