To add some additional info about the link that Robert just posted, the issue is that, if you specifically supply a $CFG->dbport value, then Mahara appends that to the end of your $CFG->dbhost value before sending it to mysqli_real_connect(), like "localhost:3306". The problem is that mysqli doesn't support that. Instead, we need to supply the port number as a separate argument (the fifth) to mysqli_real_connect(). Implementation-wise, in order to do that in ADODB, we need to manually set the "$this->port" for the ADODB_mysqli object.
The workaround, is that if you're using port 3306 (which is the default for MySQL), simply remove the $cfg->dbport line from your config.php file.
If you are not using port 3306, then you'll need to patch the software to fix it.
To add some additional info about the link that Robert just posted, the issue is that, if you specifically supply a $CFG->dbport value, then Mahara appends that to the end of your $CFG->dbhost value before sending it to mysqli_ real_connect( ), like "localhost:3306". The problem is that mysqli doesn't support that. Instead, we need to supply the port number as a separate argument (the fifth) to mysqli_ real_connect( ). Implementation- wise, in order to do that in ADODB, we need to manually set the "$this->port" for the ADODB_mysqli object.
The workaround, is that if you're using port 3306 (which is the default for MySQL), simply remove the $cfg->dbport line from your config.php file.
If you are not using port 3306, then you'll need to patch the software to fix it.