连接到时出错使用 Ansible 的远程 Mysql 主机。
剧本如下
---
- name: "Create database"
login_host: host.xyz.com
login_password: "{{ mysql_root_pass }}"
login_port: "{{ mysql_port }}"
login_user: "{{ mysql_root }}"
mysql_db: "db=\"{{ item }}\" state=present"
尝试连接时出现以下错误。
"msg": "ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)\n"
答案1
错误会准确地告诉您它是什么 - 您无法连接到正在运行 mySQL 命令的主机上的 mySQL 服务器。可能是以下一个或多个原因:
- mySQL 服务器未运行。
- mySQL 服务器已启动,但没有 DNS 条目。
- mySQL 服务器已启动,但它位于不同的网络上,因此无法从运行 mySQL 命令的主机进行路由。
- mySQL 服务器已启动,但防火墙规则阻止您从运行 mySQL 命令的主机连接到它。
答案2
这是由于语法造成的。
正确的是以下 -
---
- name: Create database
mysql_db:
login_host: test.xyz.com
login_password: "{{ mysql_root_pass }}"
login_port: "{{ mysql_port }}"
login_user: "{{ mysql_root }}"