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

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.