Estou tentando configurar um cluster xtraDB composto por 3 nós. Agora eu tenho o cluster em execução e de acordo com as instruções, estou tentando configurar o ProxySQL para balanceamento de carga.
Então eu instalei o proxySQL em todos os 3 nós. E agora estou tentando configurá-lo com a ferramenta de administração. Mas toda vez que eu executo o comando:
[root@node1 log]# proxysql-admin --config-file=/etc/proxysql-admin.cnf --enable
Ele volta com:
Este script ajudará na configuração do ProxySQL (atualmente, apenas o cluster Percona XtraDB em combinação com o ProxySQL é suportado)
ProxySQL read/write configuration mode is singlewrite
ERROR 1045 (28000): ProxySQL Error: Access denied for user 'proxysql_admin'@'' (using password: YES)
Please check the ProxySQL connection parameters! Terminating.
Agora eu diria que o erro é bastante simples. No entanto tenho o usuário proxysql_admin devidamente definido tanto no cluster MySQL quanto nos arquivos .cnf.
Aqui está meu arquivo proxysql-admin.cnf:
# proxysql admin interface credentials.
export PROXYSQL_DATADIR='/var/lib/proxysql'
export PROXYSQL_USERNAME='proxysql_admin'
export PROXYSQL_PASSWORD='placeholder_pass'
export PROXYSQL_HOSTNAME='localhost'
export PROXYSQL_PORT='6032'
# PXC admin credentials for connecting to pxc-cluster-node.
export CLUSTER_USERNAME='proxysql_admin'
export CLUSTER_PASSWORD='placeholder_pass'
#export CLUSTER_HOSTNAME='localhost'
export CLUSTER_HOSTNAME='ccloud'
export CLUSTER_PORT='3306'
# proxysql monitoring user. proxysql admin script will create this user in pxc to monitor pxc-nodes.
export MONITOR_USERNAME='monitor'
export MONITOR_PASSWORD='placeholder_pass'
# Application user to connect to pxc-node through proxysql
export CLUSTER_APP_USERNAME='proxysql_user'
export CLUSTER_APP_PASSWORD='placeholder_pass'
# ProxySQL read/write hostgroup
export WRITE_HOSTGROUP_ID='10'
export READ_HOSTGROUP_ID='11'
# ProxySQL read/write configuration mode.
export MODE="singlewrite"
# ProxySQL Cluster Node Priority File
export HOST_PRIORITY_FILE=$PROXYSQL_DATADIR/host_priority.conf
Aqui está o usuário no cluster mysql:
mysql> select User,Host from mysql.user;
+----------------+-----------+
| User | Host |
+----------------+-----------+
| proxysql_admin | |
| proxysql_admin | % |
| mysql.session | localhost |
| mysql.sys | localhost |
| proxysql_admin | localhost |
| proxysql_user | localhost |
| root | localhost |
| sstuser | localhost |
+----------------+-----------+
Eu tentei mudar as interfaces algumas vezes, mas isso não parece ser o problema. Alguém tem alguma idéia de por que meu usuário não está se conectando?
Apenas no caso, aqui está o my.cnf do cluster no nó em que estou tentando isso:
#
# The Percona XtraDB Cluster 5.7 configuration file.
#
#
# * IMPORTANT: Additional settings that can override those from this file!
# The files must end with '.cnf', otherwise they'll be ignored.
# Please make any edits and changes to the appropriate sectional files
# included below.
#
!includedir /etc/my.cnf.d/
!includedir /etc/percona-xtradb-cluster.conf.d/
[mysqld]
server-id=1
datadir=/mysql-data
socket=/mysql-data/mysql.sock
pid-file=/var/run/mysqld/mysqld.pid
wsrep_provider=/usr/lib64/galera3/libgalera_smm.so
wsrep_cluster_name=ccloud
wsrep_cluster_address=gcomm://ip1,ip2,ip3
wsrep_node_name=pxc1
wsrep_node_address=ip1
wsrep_sst_method=xtrabackup-v2
wsrep_sst_auth=sstuser:placeholder_pass
pxc_strict_mode=ENFORCING
binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
Acontece que eu criei o usuário admin na tabela de usuários do mysql manualmente no ProxySQL e isso não foi permitido.
Remover o arquivo de banco de dados proxysql /var/lib/proxysql/proxysql.db e reiniciar o serviço proxysql (retornando para o banco de dados padrão) corrigiu esse problema para mim.
Também documentado em: https://github.com/sysown/proxysql/issues/709
Parece que seu banco de dados proxysql não possui user
proxysql_admin
. Por favor, use as credenciais de usuário proxysql padrão (admin/admin).