Please upgrade here. These earlier versions are no longer being updated and have security issues.
HackerOne users: Testing against this community violates our program's Terms of Service and will result in your bounty being denied.

Upgrading Vanilla 2.1 to Vanilla 2.3

Hello all
I have to do a vanilla 2.1 upgrade to version 2.3.

I'm testing it in localhost

I made a backup of my database online, the size is 7GB
When I try to import it locally using "phpmyadmin" or "HeidiSQL" it get stuck and does not go forward, I have to change the "Alert table ENABLE keys" to "DISABLE", and I have to carry out the import via mysql in terminal, otherwise I can not import it in no ' other way.

After importing the database, following the official guide, i set the theme to default and disable plugins, delete cache and save config.php, then i override the vanilla files 2.1 with those of vanilla 2.3 and launch ../utility/update. After a few hours crashes, if i stop and re-launch the utility/update, the update ends "successfully".

The forum now in localhost seems to work pretty good but it is extremly slow, especially when I write a comment, It can also take a minute or more for a single comment. (My official online version2.1 is really fast)

Localhost info:
Server Type: MariaDB
Apache / 2.4.23 (Win32) OpenSSL / 1.0.2h PHP / 5.6.28
PHP extension: mysqli
PHP Version: 5.6.28

Before i make an update on the online Vanilla, I want to understand what these problems are due, you have any idea?

Thank you.


  • LincLinc Detroit Admin
    edited January 2017

    The problem is you're recreating the database keys which can take a very long time. I'd compare your keys between production and localhost to make sure your localhost has created all its keys successfully. That's a huge performance drag otherwise.

    I'm unsure how long it will take your localhost to finish rebuilding the keys or how to check its progress off the top of my head.

  • there is no need for mysqli, you might as well use php7.

    As to whether MariaDB is faster the MySQL this depends on a lot of things can go either way. I'm not sure the extent of MariaDB testing by the vanilla team. It might not be a good option.

    Perconca can faster be for sure. it automatically uses XtraDB even when the engine is InnoDB.

    grep is your friend.

  • edited January 2017

    Thanks for answer
    I'm testing it on online VPS to understsand if the problem is in localhost

    Db import is pretty fast, but i have this error when try to load online forum

    ` Fatal Error in Gdn_Database.Query();
    Table 'vanilla5.GDN_Permission' doesn't exist
    select *
    from GDN_Permission Permission
    limit 1
    The error occurred on or near: /var/www/html/forum/library/database/class.database.php
    283:          $PDOStatement = $this->Connection()->query($Sql);
    284:       }
    286:       if ($PDOStatement === FALSE) {
    287:          trigger_error(ErrorMessage($this->GetPDOErrorMessage($this->Connection()->errorInfo()), $this->ClassName, 'Query', $Sql), E_USER_ERROR);
    288:       }
    290:       // Did this query modify data in any way?
    291:       if ($ReturnType == 'ID') { `

    I've deleted cache, and changed config.php

    Application: Vanilla Application Version: PHP Version: 7.0.13-0ubuntu0.16.04.1 Operating System: Linux Server Software: Apache/2.4.18 (Ubuntu) User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36 Request Uri: /forum/ Controller: Gdn_Database Method: Query

  • edited January 2017


    I've solved uploading again my db with this change on mysqld.cnf

    lower_case_table_names = 0

  • update/utility still wont works,
    i've changed my php version from 7 to 5.6
    when i try to update i get the following error

    Fatal Error in PHP.trigger_error();
    Incorrect datetime value: '0000-00-00 00:00:00' for column 'DateFirstVisit' at row 20720
    The error occurred on or near: /var/www/html/forum/library/database/class.database.php
    408:                 // If we get here then the pdo statement prepared properly.
    409:                 break;
    411:             } catch (Gdn_UserException $uex) {
    412:                 trigger_error($uex->getMessage(), E_USER_ERROR);
    413:             } catch (Exception $ex) {
    414:                 list($state, $code, $message) = $PDO->errorInfo();
    416:                 // If the error code is consistent with a disconnect, attempt to retry
Sign In or Register to comment.