3つのノードで構成されるxtraDBクラスターをセットアップしようとしています。これでクラスターが起動して実行されました。指示に従って、負荷分散のためにProxySQLを設定しようとしています。
したがって、3つのノードすべてにproxySQLをインストールしました。そして今、私はそれを管理ツールで構成しようとしています。しかし、私がコマンドを実行するたびに:
[root@node1 log]# proxysql-admin --config-file=/etc/proxysql-admin.cnf --enable
それは戻ってきます:
このスクリプトはProxySQLの構成を支援します(現在、ProxySQLと組み合わせたPercona XtraDBクラスターのみがサポートされています)
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 dbにユーザーproxysql_admin
がないようです。デフォルトのproxysqlユーザー資格情報(admin/admin)を使用してください。