因此,对总体情况做一点解释:我试图在一台机器上运行多个 PXC 实例,并通过 Galera 相互复制。我在 VirtualBox OSE 虚拟机中运行 Ubuntu Server 13.04 amd64。我安装了 Percona debian/ubuntu 存储库,并从那里安装了 percona-xtradb-cluster-server-5.5、percona-xtrabackup、percona-xtradb-cluster-client-5.5、percona-xtradb-cluster-common-5.5 和 percona-xtradb-cluster-galera-2.x。mysqld --version
显示“mysqld Ver 5.5.33-55 for Linux on x86_64 (Percona XtraDB Cluster (GPL), wsrep_23.7.6.r3915)”。
安装 PXC 后,我设置了一个/data/mysql
目录和几个 /etc/mysql/my.*.cnf files, one for each node I intended to create.
my.galera1.cnf`,如下所示:
[mysqld]
port = 5533
socket=/tmp/mysql.galera1.sock
datadir=/data/mysql/galera1
#basedir=/usr/bin
user=root
log_error=error.log
innodb_file_per_table
### galera-required settings ###
query_cache_size=0
binlog_format=ROW
default_storage_engine=innodb
innodb_autoinc_lock_mode=2
#innodb_locks_unsafe_for_binlog=1
### wsrep basic settings ###
wsrep_provider=/usr/lib/libgalera_smm.so
wsrep_cluster_name=boringname
wsrep_cluster_address=gcomm://localhost:5533,localhost:5534,localhost:5535
wsrep_sst_method=rsync
#wsrep_sst_auth=repluser:replpass
wsrep_node_name=node1
wsrep_node_address=localhost:5533
[mysql]
user=root
然后我调用mysql_install_db --defaults-file=/etc/mysql/my.galera1.cnf
来初始化数据目录,然后mysqld_safe --defaults-file=/etc/mysql/my.galera1.cnf --wsrep-new-cluster
。mysqld_safe
将以下内容打印到屏幕上:
130927 23:53:22 mysqld_safe 记录到 '/data/mysql/galera1/error.log'。
130927 23:53:22 mysqld_safe 使用来自 /data/mysql/galera1 的数据库启动 mysqld 守护进程
130927 23:53:22 mysqld_safe 跳过 wsrep-recover 以获取空数据目录:/data/mysql/galera1
130927 23:53:22 mysqld_safe 将 00000000-0000-0000-0000-00000000000:-1 分配给 wsrep_start_position
130927 23:53:32 mysqld_safe mysqld 来自 pid 文件 /data/mysql/galera1/ubusrv1304-0.pid 结束
并将以下内容改为/data/mysql/galera1/error.log
:
130927 23:53:22 mysqld_safe 使用来自 /data/mysql/galera1 的数据库启动 mysqld 守护进程
130927 23:53:22 mysqld_safe 跳过 wsrep-recover 以获取空数据目录:/data/mysql/galera1 130927 23:53:22 mysqld_safe
将 00000000-0000-0000-0000-00000000000:-1 分配给 wsrep_start_position
130927 23:53:22 [注意] WSREP:wsrep_start_position var submitted: '00000000-0000-0000-0000-00000000000:-1'
130927 23:53:22 [注意] WSREP:从存储引擎读取 nil XID,跳过位置 init
130927 23:53:22 [注意] WSREP:wsrep_load():加载提供程序库“/usr/lib/libgalera_smm.so”
130927 23:53:22 [注意] WSREP:wsrep_load():Codership Oy 的 Galera 2.7(r157) 成功加载。
130927 23:53:22 [警告] WSREP:无法打开已保存的状态文件进行读取:/data/mysql/galera1//grastate.dat
130927 23:53:22 [注意] WSREP:找到已保存的状态:00000000-0000-0000-0000-000000000000:-1
130927 23:53:22 [注意] WSREP:在“/data/mysql/galera1//galera.cache”中预分配 134219048/134219048 字节...
130927 23:53:22 [注意] WSREP:将配置传递给 GCS:base_host = localhost; base_port = 5533; cert.log_conflicts = no; gcache.dir = /data/mysql/galera1/; gcache.keep_pages_size = 0; gcache.mem_size = 0; gcache.name = /data/mysql/galera1//galera.cache; gcache.page_size = 128M; gcache.size = 128M; gcs.fc_debug = 0; gcs.fc_factor = 1; gcs.fc_limit = 16; gcs.fc_master_slave = NO; gcs.max_packet_size = 64500; gcs.max_throttle = 0.25; gcs.recv_q_hard_limit = 9223372036854775807; gcs.recv_q_soft_limit = 0.25; gcs.sync_donor = NO; replicator.causal_read_timeout = PT30S; replicator.commit_order = 3
130927 23:53:22 [注意] WSREP:分配认证的初始位置:-1,协议版本:-1
130927 23:53:22 [注意] WSREP:wsrep_sst_grab()
130927 23:53:22 [注意] WSREP:开始复制
130927 23:53:22 [注意] WSREP:将初始位置设置为 00000000-0000-0000-0000-000000000000:-1
130927 23:53:22 [注意] WSREP:protonet asio 版本 0
130927 23:53:22 [注意] WSREP:后端:asio
130927 23:53:22 [注] WSREP:GMCast 版本 0
130927 23:53:22 [注] WSREP:(e6e10868-27f9-11e3-85c4-2672bd9349a7,'tcp://0.0.0.0:5533')正在侦听 tcp://0.0.0.0:5533
130927 23:53:22 [注] WSREP:(e6e10868-27f9-11e3-85c4-2672bd9349a7,'tcp://0.0.0.0:5533')多播:,ttl:1
130927 23:53:22 [注] WSREP:EVS 版本 0
130927 23:53:22 [注] WSREP: PC 版本 0
130927 23:53:22 [注] WSREP: gcomm: 连接到组“boringname”,对等点“”
130927 23:53:22 [注] WSREP: 节点 e6e10868-27f9-11e3-85c4-2672bd9349a7 状态 prim
130927 23:53:22 [注] WSREP: view(view_id(PRIM,e6e10868-27f9-11e3-85c4-2672bd9349a7,1) 成员 {
e6e10868-27f9-11e3-85c4-2672bd9349a7,
} 加入 {
} 离开 {
} 分区 {
})
130927 23:53:22 [注] WSREP:gcomm:已连接
130927 23:53:22 [注] WSREP:将最大数据包大小更改为 64500,结果消息大小为:32636
130927 23:53:22 [注] WSREP:将 CLOSED 移至 OPEN(TO:0)
130927 23:53:22 [注] WSREP:打开通道“boringname”
130927 23:53:22 [注] WSREP:等待 SST 完成。
130927 23:53:22 [注] WSREP:新组件:primary = yes、bootstrap = no、my_idx = 0、memb_num = 1
130927 23:53:22 [注] WSREP:从头开始新组:e6e177a0-27f9-11e3-92e7-4b4286f53f4a
130927 23:53:22 [注] WSREP:STATE_EXCHANGE:已发送状态 UUID:e6e17ffd-27f9-11e3-8c08-8b5bd34ddb16 130927
23:53:22 [注] WSREP:STATE EXCHANGE:已发送状态消息: e6e17ffd-27f9-11e3-8c08-8b5bd34ddb16
130927 23:53:22 [注意] WSREP:状态交换:获得状态消息:e6e17ffd-27f9-11e3-8c08-8b5bd34ddb16 来自 0(节点 1)
130927 23:53:22 [注意] WSREP:仲裁结果:
版本 = 2、
组件 = PRIMARY、
conf_id = 0、
成员 = 1/1(已加入/总计)、
act_id = 0、
last_appl。 = -1,
协议 = 0/4/2(gcs/repl/appl),
组 UUID = e6e177a0-27f9-11e3-92e7-4b4286f53f4a
130927 23:53:22 [注] WSREP:流控制间隔:[16, 16]
130927 23:53:22 [注] WSREP:恢复状态 OPEN -> JOINED (0)
130927 23:53:22 [注] WSREP:新集群视图:全局状态:e6e177a0-27f9-11e3-92e7-4b4286f53f4a:0,视图#1:主,节点数:1,我的索引:0,协议版本 2
130927 23:53:22 [注] WSREP: SST 完成,seqno: 0
130927 23:53:22 [注意] 插件“FEDERATED”已禁用。/usr/sbin/mysqld
: 表“mysql.plugin”不存在
130927 23:53:22 [错误] 无法打开 mysql.plugin 表。请运行 mysql_upgrade 来创建它。
130927 23:53:22 InnoDB:InnoDB 内存堆已禁用
130927 23:53:22 InnoDB:互斥锁和 rw_locks 使用 GCC 原子内置函数
130927 23:53:22 InnoDB:压缩表使用 zlib 1.2.3
130927 23:53:22 InnoDB:使用 Linux 原生 AIO
130927 23:53:22 [注意] WSREP:成员 0(节点 1)已与组同步。
130927 23:53:22 [注] WSREP:将 JOINED 移至 SYNCED(TO:0)
130927 23:53:22 InnoDB:初始化缓冲池,大小 = 128.0M
130927 23:53:22 InnoDB:已完成缓冲池初始化
InnoDB:第一个指定的数据文件 ./ibdata1 不存在:
InnoDB:要创建一个新的数据库!
130927 23:53:22 InnoDB:将文件 ./ibdata1 大小设置为 10 MB
InnoDB:数据库物理上将文件写入完整:等待...
130927 23:53:22 InnoDB:日志文件 ./ib_logfile0 不存在:新文件待创建
InnoDB:将日志文件 ./ib_logfile0 大小设置为 5 MB
InnoDB:数据库物理上将文件写入完整:等待...
130927 23:53:22 InnoDB:日志文件 ./ib_logfile1 不存在:新文件待创建
InnoDB:将日志文件 ./ib_logfile1 大小设置为 5 MB
InnoDB:数据库物理上将文件写入完整:等待...
InnoDB:未找到 Doublewrite 缓冲区:创建新的
InnoDB:已创建 Doublewrite 缓冲区
InnoDB:127 个回滚段处于活动状态。
InnoDB:创建外键约束系统表
InnoDB:已创建外键约束系统表
130927 23:53:22 InnoDB:正在等待后台线程启动
130927 23:53:23 Percona XtraDB (http://www.percona.com) 5.5.33-rel31.0 已启动;日志序列号 0
130927 23:53:23 [错误] 无法启动服务器:绑定到 TCP/IP 端口。出现错误:98:地址已在使用中
130927 23:53:23 [错误] 您是否已在端口 5533 上运行另一个 mysqld 服务器?
130927 23:53:23 [错误] 正在中止130927 23:53:25 [注] WSREP: 正在关闭发送监视器...
130927 23:53:25 [注] WSREP: 已关闭发送监视器。
130927 23:53:25 [注] WSREP: gcomm: 终止线程
130927 23:53:25 [注] WSREP: gcomm: 加入线程
130927 23:53:25 [注] WSREP: gcomm: 关闭后端
130927 23:53:25 [注] WSREP: view((empty))
130927 23:53:25 [注] WSREP: gcomm:已关闭
130927 23:53:25 [注] WSREP: 收到自我离开消息。
130927 23:53:25 [注] WSREP:流控制间隔:[0, 0]
130927 23:53:25 [注] WSREP:已接收 SELF-LEAVE。正在关闭连接。
130927 23:53:25 [注] WSREP:正在将 SYNCED 移至 CLOSED(TO:0)
130927 23:53:25 [注] WSREP:正在退出 RECV 线程 0:成功
130927 23:53:25 [注] WSREP:已加入 recv_thread()。
130927 23:53:25 [注] WSREP:正在关闭复制队列。
130927 23:53:25 [注] WSREP:正在关闭从属操作队列。
130927 23:53:25 [注意] WSREP:服务已断开连接。
130927 23:53:25 [注意] WSREP:回滚程序线程正在退出
130927 23:53:26 [注意] WSREP:某些线程可能无法退出。
130927 23:53:26 InnoDB:正在开始关闭...
130927 23:53:27 InnoDB:关闭完成;日志序列号 1597945
130927 23:53:27 [注意] /usr/sbin/mysqld:关闭完成my_thread_global_end() 中的错误:1 个线程未退出
130927 23:53:32 mysqld_safe mysqld 从 pid 文件 /data/mysql/galera1/ubusrv1304-0.pid 结束
看到有关绑定到端口 5533 的错误,我运行了netstat -anp | grep 5533
,但没有结果,实际上表明(我认为)端口 5533 没有绑定到它的进程。
之前某个时候,我设法让服务器至少保持运行,虽然我可以从 mysql 命令行客户端连接到它,但是没有任何命令不抱怨没有这样的命令。
我完全搞不懂我做错了什么,所以任何帮助我都会非常欢迎。提前谢谢大家!
答案1
错误很明显:
130927 23:53:23 [ERROR] Can't start server: Bind on TCP/IP port. Got error: 98: Address already in use
130927 23:53:23 [ERROR] Do you already have another mysqld server running on port: 5533 ?
130927 23:53:23 [ERROR] Aborting
已有其他程序绑定到该端口。通常这是服务器的另一个副本。
尝试重新启动另一台服务器之前,请先停止它。