我有一个Ubuntu VM。但是,当我尝试通过Ansible更改MariaDB的默认密码(空密码)时,它说我没有这样做的权限。我通常可以使用sudo mysql -u root -p
登录MariaDB。
我尝试设置**become:是的,但是没有用。
你能帮我吗?
playbook.yml:
- hosts: vm-bd-01
vars:
mysql_root_password: password
tasks:
- name: Install MariaDB Server
apt:
pkg:
- mariadb-server
- python3-pymysql
update_cache: yes
become: yes
- name: Change default MariaDB password
become: yes
mysql_user:
login_host: 'localhost'
login_user: 'root'
login_password: ''
name: 'root'
password: '{{ mysql_root_password }}'
state: present
字符串
错误:
TASK [Change default MariaDB password] ************************************************************************************************************************************************************************************************************
fatal: [IP]: FAILED! => {"changed": false, "msg": "unable to connect to database, check login_user and login_******** are correct or /root/.my.cnf has the credentials. Exception message: (1698, \"Access denied for user 'root'@'localhost'\")"}
型
1条答案
按热度按时间smdnsysy1#
当没有密码连接时,你需要通过mysql unix socket(
/run/mysqld/mysqld.sock
)而不是TCP连接。比较以下各项的行为:字符串
与:
型
重写你的playbook以通过unix socket连接:
型
有了这个变化,你的剧本对我来说运行得很成功:
型
现在需要输入密码:
型