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