[英]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.