Минимальный p6 с последними обновлениями на данный момент Устанавливаем MySQL-server (5.1.56-alt4) включаем поддержку InnoDB в my.cnf и также ставим опцию default-storage-engine = InnoDB при попытке старта в консоле root'a выдаются ошибки: service mysqld start Installing all prepared tables 110904 21:10:21 [Note] Plugin 'InnoDB' is disabled. 110904 21:10:21 [ERROR] Unknown/unsupported table type: InnoDB 110904 21:10:21 [ERROR] Aborting 110904 21:10:21 [Note] /usr/sbin/mysqld: Shutdown complete Installation of system tables failed! Examine the logs in /var/lib/mysql/log for more information. You can also try to start the mysqld daemon with: /usr/sbin/mysqld --skip-grant & You can use the command line tool /usr/bin/mysql to connect to the mysql database and look at the grant tables: shell> /usr/bin/mysql -u root mysql mysql> show tables Соответственно системная база mysql не создается. Если закомментировать строку с default-storage-engine = InnoDB то системная база создается, естественно как MyISAM Если на данном этапе снова включить опцию default-storage-engine = InnoDB то в консоле root'a при старте mysql снова выдает ошибки: 110904 21:20:29 [Note] Plugin 'InnoDB' is disabled. 110904 21:20:29 [ERROR] Unknown/unsupported table type: InnoDB 110904 21:20:29 [ERROR] Aborting 110904 21:20:29 [Note] /usr/sbin/mysqld: Shutdown complete Installation of system tables failed! Examine the logs in /var/lib/mysql/log for more information. You can also try to start the mysqld daemon with: /usr/sbin/mysqld --skip-grant & You can use the command line tool /usr/bin/mysql to connect to the mysql database and look at the grant tables: shell> /usr/bin/mysql -u root mysql mysql> show tables Но тем не менее mysql стартует и вроде как работает, и в его переменных установлена опция default-storage-engine = InnoDB При этом в логе никаких ошибок: 2011-Sep-04 23:03:56 :: startup 110904 23:03:56 InnoDB: Initializing buffer pool, size = 5.0G 110904 23:03:57 InnoDB: Completed initialization of buffer pool 110904 23:03:58 InnoDB: Started; log sequence number 0 416685169 110904 23:03:58 [Note] Event Scheduler: Loaded 0 events 110904 23:03:58 [Note] /usr/sbin/mysqld: ready for connections. Version: '5.1.56' socket: '/mysql.sock' port: 3306 ALT Linux MySQL RPM
Надо скопировать в p6 из t6 (можете тем временем поставить вручную и лишний раз проверить): * Tue Apr 24 2012 Michael Shigorin <mike@altlinux.org> 5.1.62-alt0.M60T.1 - built for M60T * Fri Mar 23 2012 Michael Shigorin <mike@altlinux.org> 5.1.62-alt1 - 5.1.62 - /dev/urandom tweaks - spec cleanup * Wed Mar 21 2012 Michael Shigorin <mike@altlinux.org> 5.1.61-alt2 - create /dev/urandom in chroot so SSL support actually works; thanks naf@ (closes: #27100) * Thu Jan 12 2012 Michael Shigorin <mike@altlinux.org> 5.1.61-alt1 - 5.1.61 * Fri Dec 30 2011 Michael Shigorin <mike@altlinux.org> 5.1.60-alt2 - please note that 5.1.50-alt1 introduced modular InnoDB support thus the plugin must be loaded if it's supposed to be used Возможно, есть смысл собрать 5.1.68 для начала в t6...
(In reply to comment #0) > Installation of system tables failed! Ещё возможно, что придётся для 5.1.x доработать mysql_install_db для поддержки вот такого вот innodb, который в 5.5.x откатили из модулей назад.
(В ответ на комментарий №1) > Надо скопировать в p6 из t6 (можете тем временем поставить вручную и лишний раз > проверить): #90406 TESTED #1 [test-only] p6 copy=MySQL [root@main ~]# tail -n2 /var/lib/mysql/my.cnf ignore-builtin-innodb plugin-load=innodb=ha_innodb_plugin.so [root@main ~]# service mysqld restart Sending TERM signal to mysqld: [ DONE ] Waiting, while mysqld actualy stopped: [ DONE ] Adjusting environment for mysqld: [ DONE ] Starting mysqld service: [ DONE ] [root@main ~]# service mysqld status mysqld is dead, but subsystem is locked Не работает.
Не удалил все процессы. После этого всё запустилось и выдало InnoDB в show plugins; Соответственно, таблицы с явным прописыванием ENGINE=InnoDB в CREATE TABLE создаются и показывают engine в show table status. Проверьте задание под p6: apt-repo add task 90406 apt-get update apt-get dist-upgrade Если всё устроит, отправлю в p6.
При этом строка default-storage-engine = InnoDB всё также не даёт запустить mysqld.
Разбираясь с аналогичной проблемой, пришел пока к таким выводам: 1. В документации и во всех советах в интернете для установки default storage engine в MySQL 5.1 (любом) нужно прописать default-storage-engine=InnoDB. У всех это работает и ничего не ругается 2. В нашей сборке (mysqld из t6, 5.1.62, кажется), при установке этого параметра ругается именно наш скрипт-обвязка вокруг mysqld. Которая /usr/sbin/mysql_install_db: Installation of system tables failed! Но при этом mysqld запускается, default storage engine становится InnoDB и вроде как всё работает. Судя по тому, что никто в "этих ваших интернетах" не жалуется на такую проблему вообще, проблема в наших скриптах. Такое моё предположение, доказать пока нет времени, вчера только немного позанимался этим.
Действительно, в p6 попытка установить default-storage-engine=InnoDB в файле /var/lib/mysql/my.cnf приводит к ругани при запуске сервера, поскольку скрипт /usr/sbin/mysql_install_db вызывает mysqld с опцией --skip-innodb, которая несовместима с default-storage-engine=InnoDB вне зависимости от наличия или отсутствия параметра ignore-builtin-innodb. При этом ругань не мешает последующему запуску сервера, если системные таблицы на самом деле уже были созданы. Способ установки InnoDB по умолчанию, работающий в p6 - указывать этот параметр в /etc/sysconfig/mysqld: OPT="--default-storage-engine=innodb" Что касается системных таблиц - они и должны быть в формате MyISAM, это указано в документации MySQL: http://dev.mysql.com/doc/refman/5.1/en/converting-tables-to-innodb.html
Пакет пропускаем при условии последнего замечания?
В p6 сейчас MySQL-5.1.62, в котором при задании default-storage-engine=InnoDB в my.cnf демон mysqld всё же запускается. Осталась одна косметическая проблема при создании баз данных (а именно в /usr/sbin/mysql_install_db нужно убрать перестраховочный --skip-innodb [в p6 и Sisyphus/p7]).
работает.