繁体   English   中英

ansible mysql "check_implicit_admin"(无root用户密码)

[英]ansible mysql "check_implicit_admin" (without root user password)

我尝试使用 ansible 和具有数据库权限的用户创建一个数据库。

当前的 mysql 设置是在 ubuntu 20.04 上安装后的基本配置。 mysql 服务器:8.0.24

root mysql 密码没有设置,我可以不用密码访问 mysql

sudo mysql ...

为什么ansible强制使用密码?

check_implicit_admin 在这种情况下可以工作吗?

Ansible配置:

- name: Create a new database with name 'db_example'
  community.mysql.mysql_db:
  check_implicit_admin: yes
  login_user: root
  login_password: ''
  name: db_example
  state: present

- name: Create database user with name 'userx' and database privileges
  community.mysql.mysql_user:
  check_implicit_admin: yes
  login_user: root
  login_password: ''
  name: userx
  password: userx_password
  priv:
  'db_exampmle.*': 'ALL,GRANT'
  state: present

Ansible 错误:

TASK [Create a new database with name 'db_example'] **********************************************************************************
fatal: [localhost]: FAILED! => {"changed": false, "msg": "unable to connect to database, check login_user and login_password are correct or /root/.my.cnf has the credentials. Exception message: (1698, \"Access denied for user 'root'@'localhost'\")"}

我试图设置密码:

sudo mysql -u root --execute="SET PASSWORD FOR 'root'@'localhost' = 'pass';"

ansible 中的相同错误消息,更改值: login_password: 'pass'

MySQL 在 root 时允许管理员访问,但仅当客户端使用套接字连接时。

如果您添加 login_unix_socket: "/run/mysqld/mysqld.sock" 它将在 ansible 客户端中以与 mysql 客户端相同的方式工作。 这是Ubuntu 20.04中使用的套接字,其他系统或版本可能不同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM