簡體   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