Home > database >  ERROR 1064 (42000) SQL Syntax error while running ansible playbook
ERROR 1064 (42000) SQL Syntax error while running ansible playbook

Time:12-31

I am trying to load files into MySQL RDS using ansible-playbook

 tasks:

    - name: loadBase
      block:
        - name: copy loadBase files to target
          copy: src=../../myApp/{{ item }}
                dest=/tmp/{{ item | basename }}
                owner=tomcat group=tomcat mode=0600
          with_items: "{{ data.loadBase }}" 
        - name: load loadBase files into target mysql
          shell: mysql -h {{ db_host }} -u root -p{{ db_root_password }} {{ db_name }} < /tmp/{{ item | basename }}
          with_items: "{{ data.loadBase }}"
          no_log: true
        - name: cleanup loadBase files on target
          file: path=/tmp/{{ item | basename }}
                state=absent
          with_items: "{{ data.loadBase }}"
      when: loadBase

I am using the following config file which is used by the ansible playbook Config file:

# data files, relative to the source code root, to be
#   conditionally run during a deployment
data:
  loadBase:
    - data/src/main/sql/structure.sql
    - data/src/main/sql/data.sql
    - data/src/main/sql/update.sql

I see that the .sql files are being added to the /tmp folder in the app server from the ansible server. But I see that the data is not loading to MySQL RDS and I see the following error

ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-\nansible_ssh_common_args: '-o ProxyCommand=\"ssh -W %h:%p -q root@bastion-myapp' at line 1",

I am using MySQL RDS Engine version 8.0.11.

Its trying to connect to the bastion host again and its failing?

ansible_ssh_common_args: '-o ProxyCommand="ssh -W %h:%p -q bastion-app.org"'

Any help, what's wrong here?

CodePudding user response:

Why not using the Ansible MySQL module?
See Insert data into mysql tables using ansible and https://docs.ansible.com/ansible/2.5/modules/mysql_db_module.html:

# Copy database dump file to remote host and restore it to database 'my_db'
- name: Copy database dump file
  copy:
    src: dump.sql.bz2
    dest: /tmp

- name: Restore database
  community.mysql.mysql_db:
    name: my_db
    state: import
    target: /tmp/dump.sql.bz2
  • Related