ansible - mysql的Ansible设置
问题描述
我正在学习 ansible,我基本上是在使用 ansible 设置我的 ec2 服务器,并在另一台 ec2 服务器上安装 mysql。目标是创建一个密码为 12345 的用户 Bob。
- hosts: database
sudo: yes
tasks:
- name: Install mySQL repo
yum: name=http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm state=present
- name: Install mySQL
yum: pkg={{ item }}
with_items:
- mysql-community-server
- mysql-community-client
- MySQL-python
- name: start mySQL service
action: service name=mysqld state=started
- name: copy my.cnf
template: src=.my.cnf dest=/root/.my.cnf owner=root mode=0600
- name: Create database user
mysql_user: name=bob password=12345 priv=*.*:ALL state=present login_user=root login_password=Password123_#
这是 my.cnf 文件:
[client]
user=root
password=Password123_#
目前,这是我已经完成的 ansible 剧本,但我不断得到一个
fatal: [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: (1045, \"Access denied for user 'root'@'localhost' (using password: NO)\")"}
to retry, use: --limit @/etc/an
我可以对我做错了什么提出一些建议吗?
PS:我不是 mySQL 专家,但正在学习。
解决方案
您尝试做的是为没有 mysql 连接凭据的新用户定义凭据。
如此处所述,添加或删除带有模块的用户需要文件中的login_user
&login_password
或凭据。~/.my.cnf
mysql_user
传递凭据时,login_password 和 login_user 都是必需的。如果不存在,该模块将尝试从 ~/.my.cnf 读取凭据,最后回退到使用 MySQL 默认登录名“root”,没有密码。
推荐阅读
- google-apps-script - 谷歌应用脚本随机 - 例外:参数无效:名称 - 在命名重命名表时
- javascript - python抓取javascript不起作用和特定数据
- nginx - 弹性beantalk上http2的nginx配置
- sql-server - 根据另一个属性是否在列表中,将属性添加到视图
- javascript - 如何在猫鼬中更新数组中对象的属性
- node.js - 致命错误 C1083:无法打开包含文件:'nan.h':没有这样的文件或目录 [C:\Projects\TK\node_modules\symbology\build\symbology.vcxproj]
- sharepoint-online - 在 Word 模板中添加 SharePoint 图像字段
- c# - 使用泛型作为另一个类的属性
- jenkins - Jenkins Copy 工件是否执行“智能”复制
- flutter - 火焰 releasecandidate.15 中的 onTapDown 问题