Установка Percona XtraDB Cluster на Ubuntu 13.04

Итак, небольшое объяснение общей картины: я пытаюсь запустить несколько экземпляров PXC на одной машине, реплицируя их через Galera друг на друга. Я использую Ubuntu Server 13.04 amd64 в виртуальной машине VirtualBox OSE. Я установил 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 для Linux на x86_64 (Percona XtraDB Cluster (GPL), wsrep_23.7.6.r3915)".

После того, как я установил PXC, я настроил /data/mysql каталог и несколько /etc/mysql/my.*.cnffiles, 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 Запуск демона mysqld с базами данных из / data / mysql / galera1
130927 23:53:22 mysqld_safe Пропуск wsrep-recovery для пустого каталога данных: / data / mysql / galera1
130927 23:53:22 mysqld_safe Назначение 00000000-0000-0000-0000-000000000000: -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 Запуск демона mysqld с базами данных из / data / mysql / galera1
130927 23:53:22 mysqld_safe Пропуск wsrep-recovery для пустого каталога данных: / data / mysql / galera1
130927 23:53:22 mysqld_safe Назначение 00000000-0000-0000-0000-000000000000: -1 для wsrep_start_position
130927 23:53:22 [Примечание] WSREP: отправлено wsrep_start_position var: "00000000-0000-0000-0000-000000000000: -1"
130927 23:53:22 [Примечание] WSREP: чтение nID XID из механизмов хранения, пропуск позиции init
130927 23:53:22 [Примечание] WSREP: wsrep_load(): загрузка библиотеки провайдера '/usr/lib/libgalera_smm.so'
130927 23:53:22 [Примечание] WSREP: wsrep_load(): Galera 2.7(r157) от Codership Oy успешно загружена.
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: предварительное выделение 134219048/134219048 байт в /data/mysql/galera1//galera.cache '...
130927 23:53:22 [Примечание] WSREP: передача конфигурации в GCS: base_host = localhost; base_port = 5533; cert.log_conflicts = нет; 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: ПК-версия 0
130927 23:53:22 [Примечание] WSREP: gcomm: подключение к группе "boringname", peer ''
130927 23:53:22 [Примечание] WSREP: Узел e6e10868-27f9-11e3-85c4-2672bd9349a7 State Prim
130927 23:53:22 [Примечание] WSREP: view (view_id (PRIM, e6e10868-27f9-11e3-85c4-2672bd9349a7,1) memb {
e6e10868-27f9-11e3-85c4-2672bd9349a7,
} присоединился {
} оставил {
} разделенный {
})
130927 23:53:22 [Примечание] WSREP: gcomm: подключен
130927 23:53:22 [Примечание] WSREP: изменение максимального размера пакета на 64500, в результате размер сообщения будет: 32636
130927 23:53:22 [Примечание] WSREP: Сдвиг ЗАКРЫТО -> ОТКРЫТО (ДО: 0)
130927 23:53:22 [Примечание] WSREP: Открытый канал 'boringname'
130927 23:53:22 [Примечание] WSREP: Ожидание завершения SST.
130927 23:53:22 [Примечание] WSREP: новый компонент: основной = да, начальный загрузчик = нет, 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: ГОСУДАРСТВЕННЫЙ ОБМЕН: отправлено состояние msg: e6e17ffd-27f9-11e3-8c08-8b5bd34ddb16
130927 23:53:22 [Примечание] WSREP: ГОСУДАРСТВЕННЫЙ ОБМЕН: получено состояние msg: e6e17ffd-27f9-11e3-8c08-8b5bd34ddb16 из 0 (узел 1)
130927 23:53:22 [Примечание] WSREP: Результаты кворума:
версия = 2,
компонент = ПЕРВИЧНЫЙ,
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: восстановленное состояние ОТКРЫТО -> СОЕДИНЕНО (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: Смещение СОЕДИНЕНО -> СИНХРОНИЗИРОВАН (до: 0)
130927 23:53:22 InnoDB: Инициализация пула буферов, размер = 128.0M
130927 23:53:22 InnoDB: завершена инициализация буферного пула
InnoDB: первый указанный файл данных./ibdata1 не существует:
InnoDB: новая база данных, которая будет создана!
130927 23:53:22 InnoDB: установка размера файла./ibdata1 до 10 МБ
InnoDB: База данных физически записывает файл полностью: подождите...
130927 23:53:22 InnoDB: файл журнала./ib_logfile0 не существует: создается новый
InnoDB: установка размера файла журнала./ib_logfile0 на 5 МБ
InnoDB: База данных физически записывает файл полностью: подождите...
130927 23:53:22 InnoDB: файл журнала./ib_logfile1 не существует: создается новый
InnoDB: установка размера файла журнала./ib_logfile1 на 5 МБ
InnoDB: База данных физически записывает файл полностью: подождите...
InnoDB: буфер двойной записи не найден: создается новый
InnoDB: создан буфер двойной записи
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 [ОШИБКА] У вас уже есть другой сервер mysqld, работающий на порту: 5533?
130927 23:53:23 [ERROR] Отмена

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: просмотр ((пусто))
130927 23:53:25 [Примечание] WSREP: gcomm: закрыто
130927 23:53:25 [Примечание] WSREP: Получено самообслуживаемое сообщение.
130927 23:53:25 [Примечание] WSREP: Интервал управления потоком: [0, 0]
130927 23:53:25 [Примечание] WSREP: Получено САМОЛЕТОМ. Закрытие соединения.
130927 23:53:25 [Примечание] WSREP: сдвиг SYNCED -> ЗАКРЫТО (ДО: 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 

Что-то еще уже было связано с этим портом. Обычно это еще одна копия сервера.

Остановите другой сервер, прежде чем пытаться перезапустить его.

Другие вопросы по тегам