Percona

ProxySQL 使用者未連接 - XtraDB

  • May 23, 2018

我正在嘗試建立一個由 3 個節點組成的 xtraDB 集群。現在我已經啟動並執行了集群,並且按照說明我正在嘗試設置 ProxySQL 以進行負載平衡。

所以我在所有 3 個節點上都安裝了 proxySQL。現在我正在嘗試使用管理工具對其進行配置。但是每次我執行命令時:

[root@node1 log]# proxysql-admin --config-file=/etc/proxysql-admin.cnf --enable

它回來了:

此腳本將協助配置 ProxySQL(目前僅支持 Percona XtraDB 集群與 ProxySQL 結合使用)

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.

現在我會說這個錯誤非常簡單。但是,我在 MySQL 集群和 .cnf 文件中都正確定義了使用者 proxysql_admin。

這是我的 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

這是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 |
+----------------+-----------+

我已經嘗試過幾次更改介面,但這似乎不是問題。任何人都知道為什麼我的使用者沒有連接?

以防萬一,這是我正在嘗試的節點上集群的 my.cnf:

#
# 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

原來我已經在 ProxySQL 中手動創建了 mysql 使用者表中的管理員使用者,這是不允許的。

刪除 proxysql 數據庫文件 /var/lib/proxysql/proxysql.db 並重新啟動 proxysql 服務(回滾到預設數據庫)為我解決了這個問題。

還記錄在:https ://github.com/sysown/proxysql/issues/709

看起來您的 proxysql 數據庫沒有 user proxysql_admin。請使用預設的 proxysql 使用者憑據(管理員/管理員)。

引用自:https://dba.stackexchange.com/questions/206223