Percona Server 和 MySQL 服务器位于同一台服务器上的不同端口上

Percona Server 和 MySQL 服务器位于同一台服务器上的不同端口上

我从端口安装了 MySQL,并在端口 3306 上运行并监听。在同一台服务器上,我从源代码编译了 Percona Server,并在端口 3307 上运行并监听。

以下是 percona 和 mysql 的进程列表:

#mysql 
processes bin/sh /usr/local/bin/mysqld_safe --defaults-extra-file=/var/db/mysql/my.cnf --user=mysql --datadir=/var/db/mysql --pid-file=/var/db/mysql/mysql.pid
/usr/local/libexec/mysqld --defaults-extra-file=/var/db/mysql/my.cnf --basedir=/usr/local --datadir=/var/db/mysql --plugin-dir=/usr/local/lib/mysql/plugin --user=mysql --log-error=/var/db/mysql/mysql.err --pid-file=/var/db/mysql/mysql.pid

#percona processes
/bin/sh /usr/local/percona/bin/mysqld_safe --defaults-extra-file=/home/percona/my.cnf --user=percona --datadir=/home/percona --pid-file=/home/percona/mysql.pid
/usr/local/percona/bin/mysqld --defaults-extra-file=/home/percona/my.cnf --basedir=/usr/local/percona --datadir=/home/percona --plugin-dir=/usr/local/percona/lib/plugin --user=percona --log-error=/home/percona/mysql-error.log --open-files-limit=65535 --pid-file=/home/percona/mysql.pid --socket=/tmp/percona.sock --port=3307

正如您所见,percona 正在运行--socket=/tmp/percona.sock --port=3307

当我尝试从本地主机连接 Percona 时,我遇到了奇怪的情况。

mysql -S /tmp/percona.sock -uroot -p # ok, I'm connected to Percona
mysql -P 3307 -uroot -p              # NO! I'm connected to MySQL

但是,当我尝试从另一台服务器连接到 3307 时 - 我成功连接到 Percona(不是 MySQL)

#on another server
mysql -P 3307 -h somehost -u root -p # ok, I'm connected to Percona

为什么?为什么从本地主机连接到 3307 会转到常规 MySQL。但从另一台主机连接到 3307 会转到 Percona Server?

答案1

mysql -P 3307 -uroot -p # NO! I'm connected to MySQL,- 默认情况下主机为localhost。如果是这样,客户端将通过 unix 套接字而不是 TCP 进行连接。因此 -P 选项没有意义。但是,如果您像这样连接,mysql -P 3307 -uroot -p -h 127.0.0.1它将强制客户端使用 TCP,您将进入 Percona。

相关内容