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

Ansible配置MariaDB 10.1.47后root免密登录异常及解决办法

MySQL root@localhost免密登录与unix_socket_plugin冲突问题

我原本运行了下面这段Ansible脚本,期望实现MySQL服务器的root@localhost账号无需输入密码即可直接通过CLI登录(执行命令无异常):

- name: "Set the root password"
  mysql_user:
    login_user: root
    login_password: ''
    name: root
    password: "{{ mysql_root_password }}"
    priv: "*.*:ALL,GRANT"
    check_implicit_admin: yes
    host: localhost
    login_unix_socket: /var/run/mysqld/mysqld.sock
- name: "Remove all anonymous user accounts"
  mysql_user:
    name: ''
    host_all: yes
    state: absent
    login_user: root
    login_password: "{{ mysql_root_password }}"
    login_unix_socket: /var/run/mysqld/mysqld.sock
#mysql_secure_installation
- name: "Remove MySQL test database"
  mysql_db:
    name: test
    state: absent
    login_unix_socket: /var/run/mysqld/mysqld.sock
- name: "Creates db"
  mysql_db:
    name: "{{ db_name }}"
    state: present
    login_user: root
    login_password: "{{ mysql_root_password }}"
    login_unix_socket: /var/run/mysqld/mysqld.sock

但实际没达到预期效果,后来我用了下面的变通方案才让脚本正常运行:

- name: "Set database password"
  command: mysql --user=root --password={{ mysql_root_password }} --execute="SET PASSWORD FOR 'root'@'localhost' = PASSWORD('{{ mysql_root_password }}')";
- name: "Grant all to root"
  command: mysql --user=root --password={{ mysql_root_password }} mysql --execute="GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';";
- name: "Disable socket plugin"
  command: mysql --user=root --password={{ mysql_root_password }} mysql --execute="update user set Plugin='' where User='root';";
- name: "Flush privileges"
  command: mysql --user=root --password={{ mysql_root_password }} mysql --execute="flush privileges";

现在发现问题似乎和unix_socket_plugin有关,但禁用这个插件后,即使我在.my.cnf文件里指定了mysql-client的密码,也无法正常连接MySQL了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:24:41