我正在接触Ansible,但我正在努力在MySQL上创建一个新的数据库,我已经安装并启动了它的服务。
我一直得到的错误是;
失败:[prod-wp] => {“failed”:true} msg:无法连接 数据库,检查login_user和login_password是否正确或〜/ .my.cnf 有证书
下面是YML,你能帮忙吗?
#GET MySQL RUNNING- name: Start the MySQL service
sudo: yes
service:
name: mysql
state: started
enabled: true
- name: update mysql root password for all root accounts
sudo: yes
mysql_user:
name: root
host: "{{ item }}"
password: "pws"
login_user: root
login_password: "pws"
check_implicit_admin: yes
priv: "*.*:ALL,GRANT"
with_items:
- "{{ ansible_hostname }}"
- 127.0.0.1
- 1
- localhost
#命令设置WordPress
- name: Create a new database
mysql_db: name=demo state=present collation=utf8_general_ci
- name: Create a database user
mysql_user: name=root password=pws priv=*.*:ALL host=localhost
答案 0 :(得分:2)
现在这是一个猜测,因为您的password
和login_password
是相同的。默认情况下,MySQL为用户root
设置一个空密码,我想这就是你想要首先改变它的原因。但是您无法使用pws
密码登录,因为您首先必须设置它...这有意义吗?
因此,请尝试将login_password
留空:
login_password: ""
或完全删除该行。
答案 1 :(得分:1)
设置root密码后,我们会使用/root/.my.cnf
配置文件,以便将来各种Ansible任务都可以访问它:
- name: create mysql database
mysql_db: name=local state=present
- name: set mysql root password
mysql_user: name=root host=localhost password=xxxxxx
- name: store mysql root password
copy: src=files/mysql-user.cnf dest=/root/.my.cnf
files/mysql-user.cnf
包含:
[client]
user=root
password=xxxxxx
[mysql]
user=root
password=xxxxxx
[mysqldump]
user=root
password=xxxxxx
[mysqldiff]
user=root
password=xxxxxx