gpt4 book ai didi

Ansible无法找到.my.cnf无法连接到本地MySQL服务器

转载 作者:行者123 更新时间:2023-12-02 23:08:22 28 4
gpt4 key购买 nike

自 6 小时以来,我一直在尝试了解 ansible 如何在 ubuntu 16 上与我的 mariadb 配合使用。

当我使用

手动登录服务器时

mysql -u someuser -p

一切正常

当我尝试使用 ansible 脚本访问服务器时:

  - name: Create mysql database
mysql_user: name=someuser state=present password=somepw

它的提示:

fatal: [IP]: FAILED! => {"changed": false, "failed": true, "msg": "unable to connect to database, check login_user and login_password are correct or /home/someuser/.my.cnf has the credentials. Exception message: (2002, \"Can't connect to local MySQL server through socket '/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 一起工作。我真的很难找到解决方案。这难道不应该像魅力一样发挥作用吗?

最佳答案

好的,明白了。在我的例子中,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。

关于Ansible无法找到.my.cnf无法连接到本地MySQL服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44614863/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com