作者:一个人的靓靓_523 | 来源:互联网 | 2023-01-31 20:59
从6个小时开始,我试图找出ansible如何在ubuntu 16上使用我的mariadb.
当我手动登录服务器时
mysql -u someuser -p
一切正常
当我尝试使用ansible脚本访问服务器时:
- name: Create mysql database
mysql_user: name=someuser state=present password=somepw
抱怨:
致命:[IP]:失败!=> {"已更改":false,"failed":true,"msg":"无法连接到数据库,请检查login_user和login_password是否正确或/home/someuser/.my.cnf是否具有凭据.异常消息:( 2002年,"无法通过套接字连接到本地MySQL服务器'/tmp/mysql.sock'(2)\")"}
然后我尝试将.my.cnf放入远程服务器上的目录中,就像它试图告诉我的那样.我还添加了login_user和login_password.没有帮助.
该文件如下所示:
/home/someuser/.my.cnf
[client]
user=someuser
password=somepw
"好的"我想.也许在ansible脚本和conf文件中,凭据加倍.我试图离开conf文件或跳过ansible脚本中的凭据.没有帮助
我也重启了mysql服务器.没有帮助.奇怪的是,从服务器本身一切都与mysql shell一起工作.我真的很难找到解决方案.这不应该像魅力一样吗?
1> Jurudocs..:
好吧想通了.在我的案例中,Ubuntu 16将套接字文件放入
/var/run/mysqld/mysqld.sock
ansible不期待它.所以对我来说,它将login_unix_socket放入剧本(ansible脚本)
- name: Create mysql database
mysql_db:
login_unix_socket: /var/run/mysqld/mysqld.sock
name: projectname
state: present
和上面提到的.my.cnf一样.