diff --git a/ansible/roles/mariadb/defaults/main.yml b/ansible/roles/mariadb/defaults/main.yml
index b4803c0ba0f447a76003e61c9e7965d065862002..b208219d63ecec82457773add888c3d84c54cc85 100644
--- a/ansible/roles/mariadb/defaults/main.yml
+++ b/ansible/roles/mariadb/defaults/main.yml
@@ -21,7 +21,7 @@ mariadb_services:
         backend_tcp_extra:
           - "option srvtcpka"
           - "timeout server 3600s"
-          - "option {% if enable_mariadb_clustercheck | bool %}httpchk{% else %}mysql-check user haproxy post-41{% endif %}"
+          - "{% if enable_mariadb_clustercheck | bool %}option httpchk{% endif %}"
         custom_member_list: "{{ internal_haproxy_members.split(';') }}"
       mariadb_external_lb:
         enabled: "{{ enable_external_mariadb_load_balancer|bool }}"
@@ -57,8 +57,8 @@ database_max_timeout: 120
 ####################
 # HAProxy
 ####################
-internal_haproxy_members: "{% for host in mariadb_default_database_shard_hosts %} server {{ hostvars[host].ansible_facts.hostname }} {{ 'api' | kolla_address(host) }}:{{ mariadb_port }} check {% if enable_mariadb_clustercheck | bool %}port {{ mariadb_clustercheck_port }}{% endif %} inter 2000 rise 2 fall 5{% if not loop.first %} backup{% endif %};{% endfor %}"
-external_haproxy_members: "{% for host in mariadb_default_database_shard_hosts %} server {{ host }} {{ host }}:{{ mariadb_port }} check {% if enable_mariadb_clustercheck | bool %}port {{ mariadb_clustercheck_port }}{% endif %} inter 2000 rise 2 fall 5{% if not loop.first %} backup{% endif %};{% endfor %}"
+internal_haproxy_members: "{% for host in mariadb_default_database_shard_hosts %} server {{ hostvars[host].ansible_facts.hostname }} {{ 'api' | kolla_address(host) }}:{{ mariadb_port }} check port {% if enable_mariadb_clustercheck | bool %}{{ mariadb_clustercheck_port }}{% else %}{{ mariadb_port }}{% endif %} inter 2000 rise 2 fall 5{% if not loop.first %} backup{% endif %};{% endfor %}"
+external_haproxy_members: "{% for host in mariadb_default_database_shard_hosts %} server {{ host }} {{ host }}:{{ mariadb_port }} check port {% if enable_mariadb_clustercheck | bool %}{{ mariadb_clustercheck_port }}{% else %}{{ mariadb_port }}{% endif %} inter 2000 rise 2 fall 5{% if not loop.first %} backup{% endif %};{% endfor %}"
 
 ####################
 # Docker
diff --git a/ansible/roles/mariadb/tasks/config.yml b/ansible/roles/mariadb/tasks/config.yml
index ffe74038665d70f33a55170a766992b42d915d6b..9b5365e3dd0b99a8226eb0224e05c5958162cf6b 100644
--- a/ansible/roles/mariadb/tasks/config.yml
+++ b/ansible/roles/mariadb/tasks/config.yml
@@ -82,26 +82,6 @@
   notify:
     - restart mariadb
 
-- name: Warn about deprecation
-  debug:
-    msg: >
-      wsrep-notify.sh script is deprecated and will be removed in Xena
-  when: not enable_mariadb_clustercheck | bool
-
-- name: Copying over wsrep-notify.sh
-  template:
-    src: "{{ role_path }}/templates/wsrep-notify.sh.j2"
-    dest: "{{ node_config_directory }}/{{ item.key }}/wsrep-notify.sh"
-    mode: "0770"
-  become: true
-  when:
-    - inventory_hostname in groups[item.value.group]
-    - item.value.enabled | bool
-    - not enable_mariadb_clustercheck | bool
-  with_dict: "{{ mariadb_services }}"
-  notify:
-    - restart mariadb
-
 - name: Copying over xinetd clustercheck.conf
   vars:
     service_name: "mariadb-clustercheck"
diff --git a/ansible/roles/mariadb/templates/galera.cnf.j2 b/ansible/roles/mariadb/templates/galera.cnf.j2
index f0a0474f59cc682e4b8393ba1f60c891aba91ca7..245e01ee08fc71f482be4f9cabfea12bd632b0ff 100644
--- a/ansible/roles/mariadb/templates/galera.cnf.j2
+++ b/ansible/roles/mariadb/templates/galera.cnf.j2
@@ -40,9 +40,6 @@ wsrep_node_name={{ ansible_facts.hostname }}
 wsrep_sst_method={{ sst_method }}
 wsrep_sst_auth={{ database_user }}:{{ database_password }}
 wsrep_slave_threads=4
-{% if not enable_mariadb_clustercheck | bool %}
-wsrep_notify_cmd=/usr/local/bin/wsrep-notify.sh
-{% endif %}
 wsrep_on = ON
 
 max_connections=10000
diff --git a/ansible/roles/mariadb/templates/mariadb.json.j2 b/ansible/roles/mariadb/templates/mariadb.json.j2
index e9003a0dfeb7622d6f71fe2235870a1eefdc0022..ac1b5bf27d33f97b3e5248b79983e4307dad3b81 100644
--- a/ansible/roles/mariadb/templates/mariadb.json.j2
+++ b/ansible/roles/mariadb/templates/mariadb.json.j2
@@ -7,13 +7,7 @@
             "dest": "/etc/{{ mysql_dir }}/my.cnf",
             "owner": "mysql",
             "perm": "0600"
-        }{% if not enable_mariadb_clustercheck | bool %},
-        {
-            "source": "{{ container_config_directory }}/wsrep-notify.sh",
-            "dest": "/usr/local/bin/wsrep-notify.sh",
-            "owner": "mysql",
-            "perm": "0700"
-        }{% endif %}
+        }
     ],
     "permissions": [
         {
diff --git a/ansible/roles/mariadb/templates/wsrep-notify.sh.j2 b/ansible/roles/mariadb/templates/wsrep-notify.sh.j2
deleted file mode 100644
index f5096e924612a158f1450e1a655fec9f8521c2e5..0000000000000000000000000000000000000000
--- a/ansible/roles/mariadb/templates/wsrep-notify.sh.j2
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/bin/bash -e
-
-# Edit parameters below to specify the address and login to server.
-USER={{ database_user }}
-PSWD={{ database_password }}
-HOST={{ api_interface_address }}
-PORT={{ mariadb_port }}
-LB_USER={{ mariadb_monitor_user }}
-
-ENABLE_LB="UPDATE mysql.user SET User='${LB_USER}' WHERE User='${LB_USER}_blocked';"
-DISABLE_LB="UPDATE mysql.user SET User='${LB_USER}_blocked' WHERE User='${LB_USER}';"
-MYSQL_CMD="`type -p mysql` -B -u$USER -p$PSWD -h$HOST -P$PORT"
-
-status_update()
-{
-    echo "SET SESSION wsrep_on=off;"
-    echo "$@"
-    echo "FLUSH PRIVILEGES;"
-}
-
-get_sst_method()
-{
-    $MYSQL_CMD -s -N -e "SHOW VARIABLES LIKE 'wsrep_sst_method';" | awk '{ print $2 }'
-}
-
-while [ $# -gt 0 ]
-do
-    case $1 in
-    --status)
-        STATUS=$2
-        shift
-        ;;
-    --uuid)
-        CLUSTER_UUID=$2
-        shift
-        ;;
-    --primary)
-        [ "$2" = "yes" ] && PRIMARY="1" || PRIMARY="0"
-        shift
-        ;;
-    --index)
-        INDEX=$2
-        shift
-        ;;
-    --members)
-        MEMBERS=$2
-        shift
-        ;;
-    esac
-    shift
-done
-
-case $STATUS in
-Synced)
-    CMD=$ENABLE_LB
-    ;;
-Donor)
-    # enabling donor only if xtrabackup configured
-    SST_METHOD=`get_sst_method`
-    if [[ $SST_METHOD =~ (mariabackup|xtrabackup) ]]; then
-        CMD=$ENABLE_LB
-    else
-        CMD=$DISABLE_LB
-    fi
-    ;;
-Undefined)
-    # shutting down database: do nothing
-    ;;
-*)
-    CMD=$DISABLE_LB
-    ;;
-esac
-
-if [ -n "$CMD" ]
-then
-    status_update "$CMD" | $MYSQL_CMD
-fi
-
-exit 0
diff --git a/releasenotes/notes/bug-1947534-bf3b5ed19473015f.yaml b/releasenotes/notes/bug-1947534-bf3b5ed19473015f.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..9c78f4d0753ea819d4cb886e5d0b9db53368b4ea
--- /dev/null
+++ b/releasenotes/notes/bug-1947534-bf3b5ed19473015f.yaml
@@ -0,0 +1,5 @@
+---
+fixes:
+  - |
+    Fixes an issue with single node MariaDB deployments with HAProxy disabled.
+    See `bug 1947534 <https://launchpad.net/bugs/1947534>`__ for details.
diff --git a/releasenotes/notes/remove-wsrep-notify-dbb5ef5f700b06b1.yaml b/releasenotes/notes/remove-wsrep-notify-dbb5ef5f700b06b1.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..9e35d2a7523ff10c5427ad47ac5ea775df914e11
--- /dev/null
+++ b/releasenotes/notes/remove-wsrep-notify-dbb5ef5f700b06b1.yaml
@@ -0,0 +1,5 @@
+---
+upgrade:
+  - |
+    The ``wsrep-notify.sh`` script has been removed (following deprecation
+    in Wallaby).