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

如何通过SaltStack为10.4及以上版本MariaDB设置默认root密码

正确配置方案

核心原因说明

你原有配置失败的原因是使用127.0.0.1走TCP连接访问MariaDB,无法触发unix_socket的操作系统用户认证逻辑,无密码访问直接被拒绝。

方案1:优先推荐,走Unix Socket认证(适用于Salt Minion默认以root运行的绝大多数场景)

直接调整mysql_user的连接参数,指定使用本地Unix socket文件连接,此时操作系统root身份运行的Salt Minion可以直接通过unix_socket认证登录,无需初始密码:

Set MariaDB Root Password:
  mysql_user.present:
    - name: root
    - password: {{ root_mariadb_password }}
    - connection_user: root
    # 走本地socket连接,不要用127.0.0.1
    - connection_host: localhost
    # 填写你的MariaDB实际socket路径,默认一般为/run/mysqld/mysqld.sock
    - connection_unix_socket: /run/mysqld/mysqld.sock
    - connection_password: ''
    - connection_charset: utf8

方案2:适用于Salt Minion非root运行的特殊场景

如果你的Salt Minion确实没有使用操作系统root身份运行,可以通过提权调用系统root执行mysql命令行完成初始密码设置:

Set MariaDB Root Password:
  cmd.run:
    - name: |
        mysql -e "SET PASSWORD FOR root@localhost = PASSWORD('{{ root_mariadb_password }}'); FLUSH PRIVILEGES;"
    - runas: root
    - unless: mysql -u root -p'{{ root_mariadb_password }}' -e "SELECT 1" >/dev/null 2>&1

后续使用说明

完成root密码设置后,后续所有MariaDB相关的Salt State配置,直接填写connection_password: {{ root_mariadb_password }}即可正常认证。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 23:48:02