mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-22 12:50:22 -07:00
Fix mysql authentication errors
The mysql-server package on Ubuntu16.04 was recently updated to disallow unauthenticated root user login over tcp/ip. This, coupled with pymysql using tcp/ip whenever host and port is specified causes us to fail to connect to the database when testing Python3 on Ubuntu16.04. The fix is to use the unix socket instead.
This commit is contained in:
parent
74ce8ce935
commit
748ea39ecd
9 changed files with 378 additions and 83 deletions
|
@ -18,13 +18,21 @@
|
|||
|
||||
# ============================================================
|
||||
|
||||
- name: remove database if it exists
|
||||
command: >
|
||||
mysql -sse "drop database {{db_name}};"
|
||||
ignore_errors: True
|
||||
|
||||
- name: make sure the test database is not there
|
||||
command: mysql {{db_name}}
|
||||
register: mysql_db_check
|
||||
failed_when: "'1049' not in mysql_db_check.stderr"
|
||||
|
||||
- name: test state=present for a database name (expect changed=true)
|
||||
mysql_db: name={{ db_name }} state=present
|
||||
mysql_db:
|
||||
name: '{{ db_name }}'
|
||||
state: present
|
||||
login_unix_socket: '{{ mysql_socket }}'
|
||||
register: result
|
||||
|
||||
- name: assert output message that database exist
|
||||
|
@ -42,7 +50,10 @@
|
|||
|
||||
# ============================================================
|
||||
- name: test state=absent for a database name (expect changed=true)
|
||||
mysql_db: name={{ db_name }} state=absent
|
||||
mysql_db:
|
||||
name: '{{ db_name }}'
|
||||
state: absent
|
||||
login_unix_socket: '{{ mysql_socket }}'
|
||||
register: result
|
||||
|
||||
- name: assert output message that database does not exist
|
||||
|
@ -60,7 +71,11 @@
|
|||
|
||||
# ============================================================
|
||||
- name: test mysql_db encoding param not valid - issue 8075
|
||||
mysql_db: name=datanotvalid state=present encoding=notvalid
|
||||
mysql_db:
|
||||
name: datanotvalid
|
||||
state: present
|
||||
encoding: notvalid
|
||||
login_unix_socket: '{{ mysql_socket }}'
|
||||
register: result
|
||||
ignore_errors: true
|
||||
|
||||
|
@ -73,7 +88,11 @@
|
|||
|
||||
# ============================================================
|
||||
- name: test mysql_db using a valid encoding utf8 (expect changed=true)
|
||||
mysql_db: name=en{{ db_name }} state=present encoding=utf8
|
||||
mysql_db:
|
||||
name: 'en{{ db_name }}'
|
||||
state: present
|
||||
encoding: utf8
|
||||
login_unix_socket: '{{ mysql_socket }}'
|
||||
register: result
|
||||
|
||||
- name: assert output message created a database
|
||||
|
@ -87,11 +106,18 @@
|
|||
assert: { that: "'utf8' in result.stdout" }
|
||||
|
||||
- name: remove database
|
||||
mysql_db: name=en{{ db_name }} state=absent
|
||||
mysql_db:
|
||||
name: 'en{{ db_name }}'
|
||||
state: absent
|
||||
login_unix_socket: '{{ mysql_socket }}'
|
||||
|
||||
# ============================================================
|
||||
- name: test mysql_db using valid encoding binary (expect changed=true)
|
||||
mysql_db: name=en{{ db_name }} state=present encoding=binary
|
||||
mysql_db:
|
||||
name: 'en{{ db_name }}'
|
||||
state: present
|
||||
encoding: binary
|
||||
login_unix_socket: '{{ mysql_socket }}'
|
||||
register: result
|
||||
|
||||
- name: assert output message that database was created
|
||||
|
@ -105,14 +131,26 @@
|
|||
assert: { that: "'binary' in result.stdout" }
|
||||
|
||||
- name: remove database
|
||||
mysql_db: name=en{{ db_name }} state=absent
|
||||
mysql_db:
|
||||
name: 'en{{ db_name }}'
|
||||
state: absent
|
||||
login_unix_socket: '{{ mysql_socket }}'
|
||||
|
||||
# ============================================================
|
||||
- name: create user1 to access database dbuser1
|
||||
mysql_user: name=user1 password=Hfd6fds^dfA8Ga priv=*.*:ALL state=present
|
||||
mysql_user:
|
||||
name: user1
|
||||
password: 'Hfd6fds^dfA8Ga'
|
||||
priv: '*.*:ALL'
|
||||
state: present
|
||||
login_unix_socket: '{{ mysql_socket }}'
|
||||
|
||||
- name: create database dbuser1 using user1
|
||||
mysql_db: name={{ db_user1 }} state=present login_user=user1 login_password=Hfd6fds^dfA8Ga
|
||||
mysql_db:
|
||||
name: '{{ db_user1 }}'
|
||||
state: present
|
||||
login_user: user1
|
||||
login_password: 'Hfd6fds^dfA8Ga'
|
||||
register: result
|
||||
|
||||
- name: assert output message that database was created
|
||||
|
@ -127,10 +165,19 @@
|
|||
|
||||
# ============================================================
|
||||
- name: create user2 to access database with privilege select only
|
||||
mysql_user: name=user2 password=kjsfd&F7safjad priv=*.*:SELECT state=present
|
||||
mysql_user:
|
||||
name: user2
|
||||
password: 'kjsfd&F7safjad'
|
||||
priv: '*.*:SELECT'
|
||||
state: present
|
||||
login_unix_socket: '{{ mysql_socket }}'
|
||||
|
||||
- name: create database dbuser2 using user2 with no privilege to create (expect failed=true)
|
||||
mysql_db: name={{ db_user2 }} state=present login_user=user2 login_password=kjsfd&F7safjad
|
||||
mysql_db:
|
||||
name: '{{ db_user2 }}'
|
||||
state: present
|
||||
login_user: user2
|
||||
login_password: 'kjsfd&F7safjad'
|
||||
register: result
|
||||
ignore_errors: true
|
||||
|
||||
|
@ -149,7 +196,11 @@
|
|||
|
||||
# ============================================================
|
||||
- name: delete database using user2 with no privilege to delete (expect failed=true)
|
||||
mysql_db: name={{ db_user1 }} state=absent login_user=user2 login_password=kjsfd&F7safjad
|
||||
mysql_db:
|
||||
name: '{{ db_user1 }}'
|
||||
state: absent
|
||||
login_user: user2
|
||||
login_password: 'kjsfd&F7safjad'
|
||||
register: result
|
||||
ignore_errors: true
|
||||
|
||||
|
@ -168,7 +219,11 @@
|
|||
|
||||
# ============================================================
|
||||
- name: delete database using user1 with all privilege to delete a database (expect changed=true)
|
||||
mysql_db: name={{ db_user1 }} state=absent login_user=user1 login_password=Hfd6fds^dfA8Ga
|
||||
mysql_db:
|
||||
name: '{{ db_user1 }}'
|
||||
state: absent
|
||||
login_user: user1
|
||||
login_password: 'Hfd6fds^dfA8Ga'
|
||||
register: result
|
||||
ignore_errors: true
|
||||
|
||||
|
|
|
@ -20,7 +20,10 @@
|
|||
- set_fact: db_file_name="{{tmp_dir}}/{{file}}"
|
||||
|
||||
- name: state dump/import - create database
|
||||
mysql_db: name={{ db_name }} state=present
|
||||
mysql_db:
|
||||
name: '{{ db_name }}'
|
||||
state: present
|
||||
login_unix_socket: '{{ mysql_socket }}'
|
||||
|
||||
- name: state dump/import - create table department
|
||||
command: mysql {{ db_name }} '-e create table department(id int, name varchar(100));'
|
||||
|
@ -44,6 +47,7 @@
|
|||
target: "{{ db_file_name }}"
|
||||
ignore_tables:
|
||||
- "{{ db_name }}.department"
|
||||
login_unix_socket: '{{ mysql_socket }}'
|
||||
register: result
|
||||
|
||||
- name: assert successful completion of dump operation
|
||||
|
@ -55,10 +59,17 @@
|
|||
file: name={{ db_file_name }} state=file
|
||||
|
||||
- name: state dump/import - remove database
|
||||
mysql_db: name={{ db_name }} state=absent
|
||||
mysql_db:
|
||||
name: '{{ db_name }}'
|
||||
state: absent
|
||||
login_unix_socket: '{{ mysql_socket }}'
|
||||
|
||||
- name: test state=import to restore the database of type {{ format_type }} (expect changed=true)
|
||||
mysql_db: name={{ db_name }} state=import target={{ db_file_name }}
|
||||
mysql_db:
|
||||
name: '{{ db_name }}'
|
||||
state: import
|
||||
target: '{{ db_file_name }}'
|
||||
login_unix_socket: '{{ mysql_socket }}'
|
||||
register: result
|
||||
|
||||
- name: show the tables
|
||||
|
@ -71,7 +82,11 @@
|
|||
- "'department' not in result.stdout"
|
||||
|
||||
- name: test state=dump to backup the database of type {{ format_type }} (expect changed=true)
|
||||
mysql_db: name={{ db_name }} state=dump target={{ db_file_name }}
|
||||
mysql_db:
|
||||
name: '{{ db_name }}'
|
||||
state: dump
|
||||
target: '{{ db_file_name }}'
|
||||
login_unix_socket: '{{ mysql_socket }}'
|
||||
register: result
|
||||
|
||||
- name: assert output message backup the database
|
||||
|
@ -91,7 +106,11 @@
|
|||
command: mysql {{ db_name }} "-e update employee set name='John Doe' where id=47;"
|
||||
|
||||
- name: test state=import to restore the database of type {{ format_type }} (expect changed=true)
|
||||
mysql_db: name={{ db_name }} state=import target={{ db_file_name }}
|
||||
mysql_db:
|
||||
name: '{{ db_name }}'
|
||||
state: import
|
||||
target: '{{ db_file_name }}'
|
||||
login_unix_socket: '{{ mysql_socket }}'
|
||||
register: result
|
||||
|
||||
- name: assert output message restore the database
|
||||
|
@ -108,7 +127,10 @@
|
|||
- "'Joe Smith' in result.stdout"
|
||||
|
||||
- name: remove database name
|
||||
mysql_db: name={{ db_name }} state=absent
|
||||
mysql_db:
|
||||
name: '{{ db_name }}'
|
||||
state: absent
|
||||
login_unix_socket: '{{ mysql_socket }}'
|
||||
|
||||
- name: remove file name
|
||||
file: name={{ db_file_name }} state=absent
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue