Moodle
  1. Moodle
  2. MDL-31478

New Moodle 2.2.1 Installation Fails

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Not a bug
    • Affects Version/s: 2.2.1
    • Fix Version/s: None
    • Component/s: Installation
    • Labels:
      None
    • Environment:
      FreeBSD 7.1, PHP 5.3.9, MySQL 5.4.2
    • Database:
      MySQL
    • Testing Instructions:
      Hide

      Follow the "Installation Quickstart" instructions at http://docs.moodle.org/22/en/Installation_Quickstart ...

      mysql> CREATE DATABASE moodle DEFAULT CHARACTER SET UTF8 COLLATE utf8_unicode_ci;
      Query OK, 1 row affected (0.00 sec)

      mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO moodleuser@localhost;
      Query OK, 0 rows affected (0.00 sec)

      mysql> flush privileges;
      Query OK, 0 rows affected (0.00 sec)

      Using Safari 5.1, browse to "http://sandbox1.byu.edu"

      Have you read these conditions and understood them?
      Continue

      Installation - Moodle 2.2.1+ (Build:20120127)
      Server checks

      All OK Green
      Continue

      Installation

      Error writing to database
      Debug info: Binary logging not possible. Message: Transaction level 'READ-COMMITTED' in InnoDB is not safe for binlog mode 'STATEMENT'
      INSERT INTO mdl_message_providers (name,component,capability) VALUES(?,?,?)
      [array (
      0 => 'notices',
      1 => 'moodle',
      2 => 'moodle/site:config',
      )]
      Stack trace:
      • line 397 of /lib/dml/moodle_database.php: dml_write_exception thrown
      • line 893 of /lib/dml/mysqli_native_moodle_database.php: call to moodle_database->query_end()
      • line 935 of /lib/dml/mysqli_native_moodle_database.php: call to mysqli_native_moodle_database->insert_record_raw()
      • line 248 of /lib/messagelib.php: call to mysqli_native_moodle_database->insert_record()
      • line 1362 of /lib/upgradelib.php: call to message_update_providers()
      • line 174 of /admin/index.php: call to install_core()

      Last 4 entries in /var/log/httpd-error.log ...

      [Wed Feb 1 23:57:02 2012] [error] Default exception handler: Could not find a top-level course! Debug: \n* line 359 of /lib/datalib.php: moodle_exception thrown\n* line 659 of /lib/setup.php: call to get_site()\n* line 76 of /theme/javascript.php: call to require()\n

      [Wed Feb 1 23:57:11 2012] [error] Database transaction aborted automatically in /usr/local/www/moodle/admin/index.php

      [Wed Feb 1 23:57:11 2012] [error] Default exception handler: Error writing to database Debug: Binary logging not possible. Message: Transaction level 'READ-COMMITTED' in InnoDB is not safe for binlog mode 'STATEMENT'\nINSERT INTO mdl_message_providers (name,component,capability) VALUES(?,?,?)\n[array (\n 0 => 'notices',\n 1 => 'moodle',\n 2 => 'moodle/site:config',\n)]\n* line 397 of /lib/dml/moodle_database.php: dml_write_exception thrown\n* line 893 of /lib/dml/mysqli_native_moodle_database.php: call to moodle_database->query_end()\n* line 935 of /lib/dml/mysqli_native_moodle_database.php: call to mysqli_native_moodle_database->insert_record_raw()\n* line 248 of /lib/messagelib.php: call to mysqli_native_moodle_database->insert_record()\n* line 1362 of /lib/upgradelib.php: call to message_update_providers()\n* line 174 of /admin/index.php: call to install_core()\n

      [Wed Feb 1 23:57:11 2012] [error] PHP Fatal error: Uncaught exception 'dml_write_exception' with message 'Error writing to database' in /usr/local/www/moodle/lib/dml/moodle_database.php:397\nStack trace:\n#0 /usr/local/www/moodle/lib/dml/mysqli_native_moodle_database.php(1096): moodle_database->query_end(false)\n#1 /usr/local/www/moodle/lib/dml/moodle_database.php(1616): mysqli_native_moodle_database->delete_records_select('config', 'name = ?', Array)\n#2 /usr/local/www/moodle/lib/moodlelib.php(1351): moodle_database->delete_records('config', Array)\n#3 /usr/local/www/moodle/lib/upgradelib.php(1184): unset_config('upgraderunning')\n#4 /usr/local/www/moodle/lib/upgradelib.php(1169): upgrade_finished()\n#5 [internal function]: upgrade_finished_handler()\n#6

      {main}

      \n thrown in /usr/local/www/moodle/lib/dml/moodle_database.php on line 397

      --------------------------------------------------------------------------------
      mysqlbinlog mysql-bin.000013 (reveal the last successful mysql transaction)

      INSERT INTO mdl_events_handlers (eventname,component,handlerfile,handlerfunction,schedule,status,internal) VALUES('portfolio_send','moodle','/lib/portfolio.php','s:22:\"portfolio_handle_event\";','cron','0','0')

      Show
      Follow the "Installation Quickstart" instructions at http://docs.moodle.org/22/en/Installation_Quickstart ... mysql> CREATE DATABASE moodle DEFAULT CHARACTER SET UTF8 COLLATE utf8_unicode_ci; Query OK, 1 row affected (0.00 sec) mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO moodleuser@localhost; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) Using Safari 5.1, browse to "http://sandbox1.byu.edu" Have you read these conditions and understood them? Continue Installation - Moodle 2.2.1+ (Build:20120127) Server checks All OK Green Continue Installation Error writing to database Debug info: Binary logging not possible. Message: Transaction level 'READ-COMMITTED' in InnoDB is not safe for binlog mode 'STATEMENT' INSERT INTO mdl_message_providers (name,component,capability) VALUES(?,?,?) [array ( 0 => 'notices', 1 => 'moodle', 2 => 'moodle/site:config', )] Stack trace: • line 397 of /lib/dml/moodle_database.php: dml_write_exception thrown • line 893 of /lib/dml/mysqli_native_moodle_database.php: call to moodle_database->query_end() • line 935 of /lib/dml/mysqli_native_moodle_database.php: call to mysqli_native_moodle_database->insert_record_raw() • line 248 of /lib/messagelib.php: call to mysqli_native_moodle_database->insert_record() • line 1362 of /lib/upgradelib.php: call to message_update_providers() • line 174 of /admin/index.php: call to install_core() Last 4 entries in /var/log/httpd-error.log ... [Wed Feb 1 23:57:02 2012] [error] Default exception handler: Could not find a top-level course! Debug: \n* line 359 of /lib/datalib.php: moodle_exception thrown\n* line 659 of /lib/setup.php: call to get_site()\n* line 76 of /theme/javascript.php: call to require()\n [Wed Feb 1 23:57:11 2012] [error] Database transaction aborted automatically in /usr/local/www/moodle/admin/index.php [Wed Feb 1 23:57:11 2012] [error] Default exception handler: Error writing to database Debug: Binary logging not possible. Message: Transaction level 'READ-COMMITTED' in InnoDB is not safe for binlog mode 'STATEMENT'\nINSERT INTO mdl_message_providers (name,component,capability) VALUES(?,?,?)\n [array (\n 0 => 'notices',\n 1 => 'moodle',\n 2 => 'moodle/site:config',\n)] \n* line 397 of /lib/dml/moodle_database.php: dml_write_exception thrown\n* line 893 of /lib/dml/mysqli_native_moodle_database.php: call to moodle_database->query_end()\n* line 935 of /lib/dml/mysqli_native_moodle_database.php: call to mysqli_native_moodle_database->insert_record_raw()\n* line 248 of /lib/messagelib.php: call to mysqli_native_moodle_database->insert_record()\n* line 1362 of /lib/upgradelib.php: call to message_update_providers()\n* line 174 of /admin/index.php: call to install_core()\n [Wed Feb 1 23:57:11 2012] [error] PHP Fatal error: Uncaught exception 'dml_write_exception' with message 'Error writing to database' in /usr/local/www/moodle/lib/dml/moodle_database.php:397\nStack trace:\n#0 /usr/local/www/moodle/lib/dml/mysqli_native_moodle_database.php(1096): moodle_database->query_end(false)\n#1 /usr/local/www/moodle/lib/dml/moodle_database.php(1616): mysqli_native_moodle_database->delete_records_select('config', 'name = ?', Array)\n#2 /usr/local/www/moodle/lib/moodlelib.php(1351): moodle_database->delete_records('config', Array)\n#3 /usr/local/www/moodle/lib/upgradelib.php(1184): unset_config('upgraderunning')\n#4 /usr/local/www/moodle/lib/upgradelib.php(1169): upgrade_finished()\n#5 [internal function] : upgrade_finished_handler()\n#6 {main} \n thrown in /usr/local/www/moodle/lib/dml/moodle_database.php on line 397 -------------------------------------------------------------------------------- mysqlbinlog mysql-bin.000013 (reveal the last successful mysql transaction) INSERT INTO mdl_events_handlers (eventname,component,handlerfile,handlerfunction,schedule,status,internal) VALUES('portfolio_send','moodle','/lib/portfolio.php','s:22:\"portfolio_handle_event\";','cron','0','0')
    • Workaround:
      Hide

      None

      Show
      None
    • Affected Branches:
      MOODLE_22_STABLE

      Description

      Tried three times to install Moodle 2.2.1, dropping the "moodle" database before each attempt, but the process failed each time after "Server checks".

        Gliffy Diagrams

          Activity

          Hide
          James Logan added a comment -

          Solved ...

          Upgrading to mysql v5.5.20 did not solve the problem, but ...

          Adding the following line to the [mysqld] section of my.cnf in mysql v5.5.20 did solve the problem:

          binlog_format = 'ROW'

          First added the following line, but this did not fix the problem by itself:

          transaction-isolation = 'SERIALIZABLE'

          Show
          James Logan added a comment - Solved ... Upgrading to mysql v5.5.20 did not solve the problem, but ... Adding the following line to the [mysqld] section of my.cnf in mysql v5.5.20 did solve the problem: binlog_format = 'ROW' First added the following line, but this did not fix the problem by itself: transaction-isolation = 'SERIALIZABLE'
          Hide
          Michael de Raadt added a comment -

          Thanks for reporting your problem and providing a solution. I'm going to close this issue now, however this report will remain here in case others have similar issues.

          Show
          Michael de Raadt added a comment - Thanks for reporting your problem and providing a solution. I'm going to close this issue now, however this report will remain here in case others have similar issues.
          Hide
          Rudy Scott added a comment -

          MySQL has returned to defaulting new installations to binlog_format="STATEMENT" (for 5.0 compatibility). Many shared hosts will not charge this setting. Is it worth considering using REPEATABLE READ isolation mode in the Moodle native MySQL driver instead of READ COMMITTED? I tried the following and it also resolved the problem:

          Look in:

          moodle\lib\dml\mysqli_native_moodle_database.php

          Search for:

          READ COMMITTED

          Replace with:

          REPEATABLE READ

          Show
          Rudy Scott added a comment - MySQL has returned to defaulting new installations to binlog_format="STATEMENT" (for 5.0 compatibility). Many shared hosts will not charge this setting. Is it worth considering using REPEATABLE READ isolation mode in the Moodle native MySQL driver instead of READ COMMITTED? I tried the following and it also resolved the problem: Look in: moodle\lib\dml\mysqli_native_moodle_database.php Search for: READ COMMITTED Replace with: REPEATABLE READ

            People

            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: