My website (ConcreteCMS 9.1.2) no longer works on Plesk host running MariaDB 10.6

My website ( no longer works after a Plesk host upgrade to MariaDB 10.6 (MySQL 8).
My website is running again on a temporary legacy MariaDB.

I am using
ConcreteCMS 9.1.2
Plesk PHP 8.1.16
Website is ok with MariaDB 10.4.21 (MySQL 5.7)
Website stops working with MariaDB 10.6.12 (MySQL 8)

I have been told by my site host that I need to update my website to be compatible with MariaDB 10.6.

I have Plesk backup files of my website and SQL files.

Not sure what to try next.

  • I do have the option to upgrade ConcreteCMS to 9.1.3 while my host has me on a temporary legacy DB.
  • Completely uninstall my present website and start from square one with ConcreteCMS 9.1.3 and somehow rebuild my website when my host has me back on MariaDB 10.6

Any help would be most appreciated.


Unless you have uncovered a previously unknown core issue, the core should be compatible.

What addons/themes are you using? Maybe one of them is incompatible and needs updating or fixing.

What is the Whoops report when you get the database errors?

An update to 9.1.3 should be straight forward. My prefered method is to replace (swap) the /concrete directory and the run the CLI upgrade command. As with any such upgrade, get a fresh backup first.

Check to make sure the dB CHARACTER SET is correct.

Note the Maxlen column. I think whatever you choose needs to support 4 bytes. I usually use utf8mb4_general_ci. Was there a conversion of CHARACTER SET during the export/import process?

Also, check that all the proper permissions are granted to the ConcreteCMS db User account.

Thanks for the help. It seems that there may be a problem with my Plesk Host.

The Plesk host for my website has again reverted me to a legacy DB with MariaDB 10.4 .

However, I note that the assigned DB for is using MariaDB 10.6 and my website is working. The legacy DB using MariaDB 10.4 is not assigned.

So the compatiblity of my ConcreteCMS website with MariaDB 10.6 appears ok.

It seems strange that when my Plesk host administrator deletes the legacy DB with MariaDB 10.4 that my website no longer works.

I have asked my Plesk host admin for further help and so that I can capture more website error info.

Have you changed ConcreteCMS configuration to the new dB location? Most servers default to localhost, but if they have more than one dB servers running, I’d assume there must be different dB hostnames or IP addresses.

No progess today.

Here is a snip from my Plesk dashboard:

Here are a couple of snips from my database.

A website error/exception report can be seen at

The snip from your dashboard, can you open the whoops image in the top left and either copy it here as a higher resolution screengrab or (better), if it is a live page, click the [COPY] button at the bottom of the first black part and post the stack trace here.

Did not see the copy button…

Doctrine\DBAL\Driver\PDO\Exception thrown with message “SQLSTATE[HY000] [2002] Connection refused”

#25 Doctrine\DBAL\Driver\PDO\Exception in /var/www/vhosts/
#24 Doctrine\DBAL\Driver\PDO\Exception:new in /var/www/vhosts/
#23 PDOException in /var/www/vhosts/
#22 PDO:__construct in /var/www/vhosts/
#21 Doctrine\DBAL\Driver\PDOConnection:__construct in /var/www/vhosts/
#20 Concrete\Core\Database\Connection\PDOConnection:__construct in /var/www/vhosts/
#19 Concrete\Core\Database\Driver\PDOMySqlConcrete\Driver:connect in /var/www/vhosts/
#18 Doctrine\DBAL\Connection:connect in /var/www/vhosts/
#17 Doctrine\DBAL\Connection:getDatabasePlatformVersion in /var/www/vhosts/
#16 Doctrine\DBAL\Connection:detectDatabasePlatform in /var/www/vhosts/
#15 Doctrine\DBAL\Connection:getDatabasePlatform in /var/www/vhosts/
#14 Concrete\Core\Database\Connection\ConnectionFactory:createConnection in /var/www/vhosts/
#13 Concrete\Core\Database\Connection\ConnectionFactory:make in /var/www/vhosts/
#12 Concrete\Core\Database\DatabaseManager:makeConnection in /var/www/vhosts/
#11 Concrete\Core\Database\DatabaseManager:connection in /var/www/vhosts/
#10 Concrete\Core\Support\Facade\Database:__callStatic in /var/www/vhosts/
#9 Concrete\Core\Package\PackageList:get in /var/www/vhosts/
#8 Concrete\Core\Application\Application:setupPackageAutoloaders in /var/www/vhosts/
#7 Concrete\Core\Foundation\Runtime\Boot\DefaultBooter:initializePackages in /var/www/vhosts/
#6 Concrete\Core\Foundation\Runtime\Boot\DefaultBooter:bootHttpSapi in /var/www/vhosts/
#5 Concrete\Core\Foundation\Runtime\Boot\DefaultBooter:boot in /var/www/vhosts/
#4 Concrete\Core\Foundation\Runtime\DefaultRuntime:boot in /var/www/vhosts/
#3 require in /var/www/vhosts/
#2 require in /var/www/vhosts/
#1 require in /var/www/vhosts/
#0 require in /var/www/vhosts/

That confirms it is the initial connection to the database that is failing.

Let’s follow up on what suggested. In you Plext file manager, navigate to /application/config/database.php. This will confirm which database your site is trying to connect to and should match up with the database info you posted above and the database password should match that in your plesk account (never post a password here).

If you post it the content here. Be sure to ‘*****’ out the content of the password.

Looks good to me… PW as expected and removed…

On various 9.1.x sites I have, the driver is ‘concrete_pdo_mysql’. It could be misdirection, but try editing the driver line.

(Background, this change arose from the rebranding of concrete5 to Concrete CMS, the core code has been slowly catching up with the rebranding)

Thanks… no luck with the change you suggested…
I have restored database.php to the way it was.

Smart thinking on changing it back. Leaving it edited may have been an unnecessary complication.

I am out of ideas at present. If it were my site, I would be creating a clone on a dev system where I can dig around more easily, get that running and updated, then creating a new live site by cloning from my dev system. That can’t be done by ‘remote control’ and could be a few days work, so probably not your best solution at present.

As this is a secondary problem and your original problem arose from MySQL 8, if there are not too many pages, creating a fresh install may be the easiest way out and be better for long term stability.

How big is your site - number of pages, users, images etc? What core version did you first install (before any updates)? What addons and theme are you using?

Don’t rush into any irreversible decision now. There may well be others with some ideas about fixing the site.

Yep… good trouble shooting advice.
I have been very happy with Concrete for a number of years… got sick of Google Sites.
I have my own web site for my geek stuff.
Probably about 10 or 20 pages… more like a personal blog.
I have backups of a lot of my images and text so could rebuild my site.
I did try blowing away my CMS 9.1.2 site earlier today but couldn’t get CMS 9.1.3 to install.
I have many projects on the go and was not wanting to become a web developer and trouble shooter. I am a 77yo geek who started out in the days of crystal diode radio receivers and vacuum tubes… Things have changed at a tremendous rate… Fun times :smile:
I will keep nibbling away at my ConcreteCMS problem.

This morning I decided to clear out my website from my Plesk Host and start again.
Using ConcreteCMS 9.1.3 manual installation to folder httpdocs
Plesk PHP 8.1.16
MariaDB 10.6
DB server localhost: 3306

From my web browser using Install Concrete CMS (
At the page Install Concrete CMS / Site information after entering all required details and clicking on Install Concrete CMS button
I get the following message:
SQLSTATE[HY000] [2002] Connection refused

I am stumped :confused:

I do still have my website backups for ConcreteCMS 9.1.2

Are you switching back and forth between two different Plesk accounts, or just one?

If only one, how can there be two different versions of MariaSQL? One MariaSQL server can have many separate databases, but I don’t think it could serve two different dB versions.

The images you posted seems to show only one dB on the dB server.

If I’m following the situation properly, you had a ConcreteCMS 9.1.2 site working okay with MariaDB 10.4.21. The host admin upgraded MariaDB to 10.6.12 (export data from old into new?) and your site stopped working.

The host admin downgraded Maria and it started working okay. Is the host admin giving you the option to somehow connect to two different dB servers (hostname, IP, or :port)?

If not, I think it’s going to be something basic, like just try using ‘localhost’ instead of ‘localhost:3306’, or whatever the dB path the host admin provided you. I’ve never needed to specify the port on a Plesk server when installing a content manager app.

The immediate connection refused error on a new install seems to support confirm a misconfigured dB connector.

Thanks some answers to your questions from my novice perspective:

One Plesk account.

At one stage the host admin had 2 MariaDB showing on my account - legacy DB 10.4 and new DB 10.6. My website was assigned to the DB 10.6 and worked. When the legacy 10.4 was removed my website would not work.

The image above showing only one DB was a snapshot with MariaDB 10.6 only when my website would not work.

Yes. My website using CMS 9.1.2 worked with DB 10.4 and failed to work with the upgrade to DB 10.6.

I am not sure how admin switched between the 2 DBs. I did note that when the 2 DBs were showing my website was assigned to DB 10.6 and my website worked. When admin removed DB 10.4 leaving only DB 10.6 then my website failed to work. Localhost:3306 has always been the same.

I don’t know how to change localhost:3306 to just localhost.

I would have to agree that there is some sort of DB connector problem. When I stripped out my website and attempted to install ConcreteCMS 9.1.3 I got a connection refused report. Having said that, I might ask my host admin to revert me to MariaDB 10.4 and attempt to install CMS 9.1.3 again. I have just under 60 days before my host will no longer make DB 10.4 available.

3306 is the default port mariaDB, and I’m not advocating that you try to change that. What I’m suggesting is when you follow the setup prompts for ConcreteCMS, just enter localhost, not localhost:3306.

When your host admin had two different dB versions available, I’d think there would have been two different locations to connect, specified by hostname (like localhost), IP address, or :port. Your host admin would be the best person to advise on the correct setup information.

These are the 2 host names provided:

Host: (MariaDB) (MariaDB 10.4)
Host: localhost:3306 (MariaDB) (MariaDB10.6)

It looks like the site is back up and running. Did you get 10.6 to work?