Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте!
Возник вопрос.
Так как для реализации MySQL кластера и MySQL реплики нужны разные пакеты MySQL, то возможна ли миграция между двумя этими подходами?
То есть я поднял MySQL реплику, а потом решил что MySQL кластер мне больше подходит, и наоборот.
Неактивен
Ну, можно поднять кластер, а потом залить туда данные. В своем роде миграция
Неактивен
Сенкс! Глупый вопрос, но нужно было жесткое подтверждение))). Вдруг есть подводные камни.
Неактивен
Всех с праздником! У меня возник вопросик!
Прочитал это
http://dev.mysql.com/doc/mysql-cluster-excerpt/5.1/en/mysql-cluster-quick.html
http://www.ctrip.ufl.edu/mysql-cluster- … enny-howto
http://www.howtoforge.com/loadbalanced_ … _debian_p2
И делал что там написано!!!
В итоге:
node2:/etc# /etc/init.d/mysql
shift: 108: can't shift that many
Идем туда - там shift и все. Всего 445 строк кода, не буду выкладывать, предполагаю вы и так его знаете.
Или вот так:
node2:/etc/init.d# /etc/init.d/mysql start
Starting MySQL
.......Manager of pid-file quit without updating file. ... failed!
Что то ему не нравится.....подскажите что дальше делать?
Отредактированно borodatych (30.07.2010 16:24:17)
Неактивен
Может быть нужные пакеты есть в репозитории?
Не нашел ни MySQL Cluster ни Max пакетов.
Может название сменили? То как тогда сейчас сие чудо называется?
Неактивен
Делал вот это:
cd /var/lib/mysql
touch mysql.sock
chown mysql.mysql mysql.sock
chmod 777 mysql.sock
cd /tmp
ln -s /var/lib/mysql/mysql.sock mysql.sock
/etc/init.d/mysql restart
результат тот же....
Мой my.cnf:
[client]
port<--><------>= 3306
socket<><------>= /var/run/mysqld/mysqld.sock
[mysqld_safe]
socket<><------>= /var/run/mysqld/mysqld.sock
nice<--><------>= 0
[mysqld]
ndbcluster
ndb-connectstring='host=10.10.10.10' # IP address of the management server
user<--><------>= mysql
pid-file<------>= /var/run/mysqld/mysqld.pid
socket<><------>= /var/run/mysqld/mysqld.sock
port<--><------>= 3306
basedir><------>= /usr
datadir><------>= /var/lib/mysql
tmpdir<><------>= /tmp
language<------>= /usr/share/mysql/english
skip-external-locking
bind-address<--><------>= 127.0.0.1
key_buffer<----><------>= 16M
max_allowed_packet<---->= 16M
thread_stack<--><------>= 128K
thread_cache_size<----->= 8
myisam-recover<><------>= BACKUP
query_cache_limit = 1M
query_cache_size = 16M
expire_logs_days<------>= 10
max_binlog_size = 100M
skip-bdb
[mysqldump]
quick
quote-names
max_allowed_packet<---->= 16M
[isamchk]
key_buffer<----><------>= 16M
[mysql_cluster]
ndb-connectstring='host=10.10.10.10' # IP address of the management server
!includedir /etc/mysql/conf.d/
Что где перемудрил/недомудрил ?
Неактивен
А какая ОС? И в каком репозитории?
Неактивен
Debian Squeeze 2.6.32-5-686
Все это катается на virtualbox, хотя наверное не принципиально, но все же.......
Отредактированно borodatych (02.08.2010 10:12:34)
Неактивен
Мне казалось, стабильный дебиан — ленни
В дебиане действительно отказались от сборки кластера. Поддерживать это
для среднестатистического пользователя тяжело Пересоберите пакетик
без --without-ndbcluster. Ну или возьмите tarball под Linux с mysql.com.
Ну и надо понимать, что amd64 таки лучше для серверной платформы.
Неактивен
Я еще даже не дошел до --without-ndbcluster....
# ndb_mgmd
2010-08-02 20:16:38 [MgmtSrvr] INFO -- NDB Cluster Management Server. mysql-5.1.44 ndb-7.1.4b
2010-08-02 20:16:38 [MgmtSrvr] ERROR -- Could not determine which nodeid to use for this node. Specify it with --ndb-nodeid=<nodeid> on command line
# ndb_mgmd --ndb-nodeid=2
2010-08-02 20:16:55 [MgmtSrvr] INFO -- NDB Cluster Management Server. mysql-5.1.44 ndb-7.1.4b
2010-08-02 20:16:55 [MgmtSrvr] INFO -- Trying to get configuration from other mgmd(s) using 'nodeid=2,10.10.10.10:1186'...
2010-08-02 20:16:55 [MgmtSrvr] INFO -- Connected to '10.10.10.10:1186'...
2010-08-02 20:16:55 [MgmtSrvr] ERROR -- This node type ndb_mgmd(MGM) and config node type ndbd(NDB) don't match for nodeid 2
Пока на этом этапе затормозил, подпните в нужную сторону....
Неактивен
В одной из приведенных Вами статей есть пример настройки кластера,
сделайте аккуратно так, как там написано? Ну или возьмите пример
конфигурации с mysql.com.
Неактивен
Скачал с сайта mysql.com GetMySQLClusterRunning-LINUX
И пользовался вот этим маном: http://www.ctrip.ufl.edu/mysql-cluster- … enny-howto
И где то я попал в тупик. Остановился вот примерно на этом:
api:/usr/local/mysqlc/bin# ./ndbd -c localhost:1186
2010-08-02 23:20:51 [ndbd] INFO -- Unable to alloc node id
2010-08-02 23:20:51 [ndbd] INFO -- Error : Could not alloc node id at localhost port 1186: Connection done from wrong host ip 127.0.0.1.
error=2350
2010-08-02 23:20:51 [ndbd] INFO -- Error handler shutting down system
2010-08-02 23:20:51 [ndbd] INFO -- Error handler shutdown completed - exiting
sphase=0
exit=-1
api:/usr/local/mysqlc/bin# ./mysqld --defaults-file=/usr/local/mysql-cluster/my.cnf &
[1] 1350
api:/usr/local/mysqlc/bin# 100802 23:23:33 [ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!
100802 23:23:33 [ERROR] Aborting
100802 23:23:33 [Note] ./mysqld: Shutdown complete
[1]+ Exit 1 ./mysqld --defaults-file=/usr/local/mysql-cluster/my.cnf
api:/usr/local/mysqlc/bin# ./mysqld -u root --defaults-file=/usr/local/mysql-cluster/my.cnf &
[1] 1352
api:/usr/local/mysqlc/bin# 100802 23:24:07 [Warning] Ignoring user change to 'root' because the user was set to 'mysql' earlier on the command line
100802 23:24:07 [Note] Plugin 'FEDERATED' is disabled.
100802 23:24:07 [Note] Plugin 'ndbcluster' is disabled.
100802 23:24:07 InnoDB: Started; log sequence number 0 44233
100802 23:24:07 [ERROR] ./mysqld: unknown variable 'defaults-file=/usr/local/mysql-cluster/my.cnf'
100802 23:24:07 [ERROR] Aborting
100802 23:24:07 InnoDB: Starting shutdown...
100802 23:24:12 InnoDB: Shutdown completed; log sequence number 0 44233
100802 23:24:12 [Note] ./mysqld: Shutdown complete
[1]+ Exit 7 ./mysqld -u root --defaults-file=/usr/local/mysql-cluster/my.cnf
Что еще предоставить, что бы можно было понять что там у мну не сошлось?
Неактивен
Даже не знаю, с какой стороны подойти к вопросу. Вы сделали всё неверно
1. Кластер работает в распределенной сети. 127.0.0.1 — это адрес локальный.
2. MySQL не стоит запускать под пользователем root, и уж точно стоит запускать
через сценарий. Хотя бы из-за angel-процесса. Ну и в конфиг тоже название
конфига не вписывают.
Сделайте так, как написано в хаутушке. Ну правда, там не запускают демона
из-под рута и не пытаются водрузить кластер на одну ноду.
Неактивен
Не знаю что помогло, раз .... несколько все проделал повторно, вроде как заработала:
node2:/usr/local# ndb_mgm -e show
Connected to Management Server at: 10.10.10.10:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @10.10.10.11 (mysql-5.1.44 ndb-7.1.4, starting, Nodegroup: 0, Master)
id=3 @10.10.10.12 (mysql-5.1.44 ndb-7.1.4, starting, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @10.10.10.10 (mysql-5.1.44 ndb-7.1.4)
[mysqld(API)] 5 node(s)
id=50 (not connected, accepting connect from any host)
id=51 (not connected, accepting connect from any host)
id=52 (not connected, accepting connect from any host)
id=53 (not connected, accepting connect from any host)
id=54 (not connected, accepting connect from any host)
Я прав или нет?
И что это за хвост?
[mysqld(API)] 5 node(s)
id=50 (not connected, accepting connect from any host)
id=51 (not connected, accepting connect from any host)
id=52 (not connected, accepting connect from any host)
id=53 (not connected, accepting connect from any host)
id=54 (not connected, accepting connect from any host)
Отредактированно borodatych (02.08.2010 15:59:54)
Неактивен
Ну, это пять SQL-нод, которые не подцепились.
Неактивен
Ну, это пять SQL-нод, которые не подцепились.
Если подскажите из какого файла они образуются, буду признателен, сам не искал еще, но вам подсказать быстрее.......
Не знаю как организовать автостарт кластера, сделал скрипты и кинул в автозагрузку:
На mgmd:
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/mysqlc/bin"
ndb_mgmd --initial -f /usr/local/mysql-cluster/config.ini
ndb_mgmd --ndb-nodeid=1
ndb_mgmd --initial
ndb_mgm -e show
На nod-ах:
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/mysqlc/bin"
ndb_mgmd --initial -f /usr/local/mysql-cluster/config.ini
ndb_mgmd --ndb-nodeid=3
ndbd --initial
ndb_mgm -e show
Если это не верный подход или есть более эффективный, подскажите/пните на таковой!
Если все стартуют через такой костыль, то принципиально какой в очереди скрипт на старте, ну там 99,90,80....как надо?
Неактивен
Вот этот вопрос не разбирали:
node2:/etc# /etc/init.d/mysql
shift: 108: can't shift that many
Решение здесь: http://john.parnefjord.se/node/71
Меняем в заголовке своего скрипта sh на bash
Если кто знает иное решение - приветствуется!
Отредактированно borodatych (03.08.2010 11:30:05)
Неактивен
Из config.ini? Там у Вас стоят пустые ноды типа [sql] или [api].
Прочитайте про --initial. Это важно. И подумайте, хорошо ли он там вписан при
рестарте машинки
Иное решение — пользоваться человеческими сценариями запуска.
Неактивен
Иное решение — пользоваться человеческими сценариями запуска.
Есть возможность продемонстрировать/дать ссылку на материал?
Неактивен
Эээ... в дебиановских пакетах вполне внятные сценарии запуска.
Неактивен
То есть просто взять скрипт mysql.server, который в тарболе на mysql.com, так же mysql от дебиановского mysql-server и переделать mysql.server по образу и подобию mysql от дебы?
Прочитайте про --initial. Это важно. И подумайте, хорошо ли он там вписан при
рестарте машинки
Где почитать? Не могу сгуглить материал.... Вкратце напишите, если не затруднит....
Неактивен
Ну хотя бы в словаре переведите. Тупое копирование инструкций из интернета
не приводит к хоть сколь-нибудь работоспособным схемам. Постарайтесь вклю-
чить голову.
Что касается «сгуглить» — документация находится на mysql.com.
Неактивен
Сдаюсь...Опять непорядок в думалке...
Вот тут затык.....
# /usr/local/mysql/bin/mysqladmin -u root password "пароль"
/usr/local/mysql/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)'
Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!
Тут какая то опция не нра ему:
# ./mysql_install_db --basedir=/usr/local/mysql
Installing MySQL system tables...
100804 0:58:23 [Warning] The syntax '--log' is deprecated and will be removed in a future release. Please use '--general_log'/'--general_log_file' instead.
100804 0:58:23 [Warning] The syntax '--log_slow_queries' is deprecated and will be removed in a future release. Please use '--slow_query_log'/'--slow_query_log_file' instead.
100804 0:58:23 [ERROR] /usr/local/mysql/bin/mysqld: unknown option '--skip-bdb'
100804 0:58:23 [ERROR] Aborting
100804 0:58:23 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
Installation of system tables failed! Examine the logs in
/var/lib/mysql for more information.
You can try to start the mysqld daemon with:
shell> /usr/local/mysql/bin/mysqld --skip-grant &
and use the command line tool /usr/local/mysql/bin/mysql
to connect to the mysql database and look at the grant tables:
shell> /usr/local/mysql/bin/mysql -u root mysql
mysql> show tables
Try 'mysqld --help' if you have problems with paths. Using --log
gives you a log in /var/lib/mysql that may be helpful.
Please consult the MySQL manual section
'Problems running mysql_install_db', and the manual section that
describes problems on your OS. Another information source are the
MySQL email archives available at http://lists.mysql.com/.
Please check all of the above before mailing us! And remember, if
you do mail us, you MUST use the /usr/local/mysql/scripts/mysqlbug script!
Еще вот так:
# /usr/local/mysql/bin/mysqld --skip-grant &
[1] 18917
node1:/usr/local/mysql/scripts# 100804 1:00:47 [Warning] The syntax '--log' is deprecated and will be removed in a future release. Please use '--general_log'/'--general_log_file' instead.
100804 1:00:47 [Warning] The syntax '--log_slow_queries' is deprecated and will be removed in a future release. Please use '--slow_query_log'/'--slow_query_log_file' instead.
100804 1:00:47 [ERROR] Error message file '/usr/share/mysql/english/errmsg.sys' had only 641 error messages,
but it should contain at least 644 error messages.
Check that the above file is the right version for this program!
100804 1:00:47 [Note] Plugin 'FEDERATED' is disabled.
100804 1:00:48 InnoDB: Started; log sequence number 0 44233
100804 1:00:48 [Note] NDB: NodeID is 4, management server '10.10.10.10:1186'
100804 1:00:49 [Note] NDB[0]: NodeID: 4, all storage nodes connected
100804 1:00:49 [Note] Starting Cluster Binlog Thread
100804 1:00:49 [ERROR] /usr/local/mysql/bin/mysqld: unknown option '--skip-bdb'
100804 1:00:49 [ERROR] Aborting
100804 1:00:49 [Note] Stopping Cluster Utility thread
100804 1:00:50 [Note] Stopping Cluster Binlog
100804 1:00:50 InnoDB: Starting shutdown...
100804 1:00:54 InnoDB: Shutdown completed; log sequence number 0 44233
100804 1:00:54 [Note]
[1]+ Exit 2 /usr/local/mysql/bin/mysqld --skip-grant
node1:/usr/local/mysql/scripts#
Все торба....выручайте!
Надо дополнительно устанавливать mysql-client или mysql-server?
Неактивен
Что же мне с Вами делать. Я не буду за Вас настраивать кластер. Правда не буду.
100804 1:00:49 [ERROR] /usr/local/mysql/bin/mysqld: unknown option '--skip-bdb'
Неактивен
Спасибо за понимание и терпение!
Проблема была в том что было много разных и в разных местах файлов my.cnf
Все это от разных способов настроек с разных источников. Читайте родные маны.
На mysql.com все есть! Как и писал paulus. Начинайте от туда.
Не наступайте на мои грабли, проверьте: find / | grep my.cnf
...для вновь пришедших...
Пока все. Продолжаю обкатку...
Отредактированно borodatych (04.08.2010 10:54:44)
Неактивен